




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
年4月19日居民健康卡應(yīng)用接口技術(shù)規(guī)范文檔僅供參考居民健康卡應(yīng)用接口技術(shù)規(guī)范北京冠新醫(yī)衛(wèi)軟件科技有限公司12月目錄目錄 2前言 41 適用范圍 52 規(guī)范性引用文件 53 術(shù)語和定義 53.1 居民健康卡ResidentsHealthCard 53.2 CPU卡 53.3 卡片操作系統(tǒng)(COS)CardOperatingSystem 53.4 加密算法CryptographicAlgorithm 53.5 對稱加密算法SymmetricCryptographicAlgorithm 63.6 非對稱加密算法AsymmetricCryptographicAlgorithm 63.7 密鑰Key 63.8 對稱密鑰SymmetricKey 63.9 非對稱密鑰AsymmetricKey 63.10 公鑰PublicKey 63.11 私鑰PrivateKey 63.12 數(shù)字簽名DigitalSignature 63.13 SM2算法 73.14 SM3算法 74 縮略語 85 應(yīng)用模型 96 接口函數(shù) 106.1 設(shè)備管理 126.2 用戶卡讀寫 136.3 卡算法服務(wù) 276.4 錯誤碼定義 29附錄AVC程序用例 301 設(shè)備管理 312 用戶卡讀寫 323 卡算法服務(wù) 53附錄B 55前言本規(guī)范涉及的數(shù)據(jù)項定義、命令數(shù)據(jù)符合衛(wèi)生部定義的居民健康卡系列規(guī)范。本規(guī)范涉及的密碼算法按照國家密碼管理部門的要求使用。本規(guī)范依據(jù)<居民健康卡技術(shù)規(guī)范>,<居民健康卡應(yīng)用規(guī)范>,<居民健康卡安全存取模塊(SAM)卡規(guī)范>,<居民健康卡安全存取模塊(SAM)卡命令集>,<居民健康卡用戶卡命令集>,結(jié)合醫(yī)療服務(wù)和用戶管理業(yè)務(wù)流程,描述定義居民健康卡中數(shù)據(jù)存取訪問接口。適用范圍本文確定居民健康卡中數(shù)據(jù)存取的應(yīng)用編程接口?;诜弦?guī)范的設(shè)備如(讀寫機具、SAM卡、用戶卡)以及<居民健康卡應(yīng)用規(guī)范>的用戶卡中的定義的特定數(shù)據(jù)項,依據(jù)居民健康卡在醫(yī)療業(yè)務(wù),用戶管理等流程中的應(yīng)用,描述定義所需接口函數(shù)、參數(shù)數(shù)據(jù)類型、以及接口的調(diào)用方式。規(guī)范性引用文件下列文件中的條款經(jīng)過本規(guī)范的引用而成為本規(guī)范的條款<居民健康卡技術(shù)規(guī)范><居民健康卡應(yīng)用規(guī)范><居民健康卡安全存取模塊(SAM)卡規(guī)范><居民健康卡安全存取模塊(SAM)卡命令集><居民健康卡用戶卡命令集>以下術(shù)語和定義適用于本規(guī)范。術(shù)語和定義居民健康卡ResidentsHealthCard居民健康卡是中華人民共和國居民擁有的,在醫(yī)療衛(wèi)生服務(wù)活動中用于身份識別,滿足健康信息存儲,實現(xiàn)跨地區(qū)和跨機構(gòu)就醫(yī)、數(shù)據(jù)交換和費用結(jié)算的基礎(chǔ)載體,是計算機可識別的CPU卡。CPU卡帶有中央處理器(CPU)、存儲單元以及卡片操作系統(tǒng)的集成電路卡。卡片操作系統(tǒng)(COS)CardOperatingSystemCPU卡芯片中存儲和運行的,以保護應(yīng)用數(shù)據(jù)和程序的機密性和完整性,控制CPU卡芯片與外界信息交換為目的的嵌入式軟件。加密算法CryptographicAlgorithm為了隱藏或顯現(xiàn)數(shù)據(jù)信息內(nèi)容的變換算法。對稱加密算法SymmetricCryptographicAlgorithm加密密鑰能夠從解密密鑰中推算出來,反過來也成立,在大多數(shù)算法中加/解密密鑰是相同的。非對稱加密算法AsymmetricCryptographicAlgorithm加密算法的加密密鑰和解密密鑰是不一樣的,不能由一個密鑰推導(dǎo)出另一個密鑰。密鑰Key加密轉(zhuǎn)換中控制操作的符號序列。對稱密鑰SymmetricKey在對稱加密算法中使用的密鑰。非對稱密鑰AsymmetricKey在非對稱加密算法中使用的密鑰,包括公鑰和私鑰。公鑰PublicKey在一個實體使用的非對稱密鑰對中能夠被公眾使用的密鑰。在數(shù)字簽名方案中,公鑰用于驗證。私鑰PrivateKey在一個實體使用的非對稱密鑰對中僅被該實體使用的密鑰。在數(shù)字簽名方案中,私鑰用于簽名。數(shù)字簽名DigitalSignature對數(shù)據(jù)的一種非對稱加密變換。該變換能夠使數(shù)據(jù)接收方確認數(shù)據(jù)的來源和完整性,保護數(shù)據(jù)發(fā)送方發(fā)出和接收方收到的數(shù)據(jù)不被第三方篡改,也保護數(shù)據(jù)發(fā)送方發(fā)出的數(shù)據(jù)不被接收方篡改。SM2算法SM2algorithm,一種國家商用密碼非對稱密碼算法,密鑰長度為256比特。SM3算法SM3algorithm,一種國家商用密碼密碼雜湊算法,輸出長度為256比特。
縮略語下列縮略語適用于本規(guī)范:縮略語中文名英文名‘0’-‘9’‘A’-‘F’十六進制數(shù)字API應(yīng)用編程接口ApplicationProgrammingInterfaceAPDU應(yīng)用協(xié)議數(shù)據(jù)單元ApplicationProtocolDataUnitPKI公鑰基礎(chǔ)設(shè)施PublicKeyInfrastructurePIN個人身份識別碼PersonalIdentificationNumberan字母數(shù)字型Alphanumericans特殊字母數(shù)字型AlphanumericSpecialb二進制BinaryBER基本編碼規(guī)則BasicEncodingRulescn壓縮數(shù)字CompressedNumericDDF目錄定義文件DirectoryDefinitionFileDF專用文件DedicatedFileEF基本文件ElementaryFileFCI文件控制信息FileControlInformationFID文件標識符FileIdentifierIC集成電路IntegratedCircuitISO國際標準化組織InternationalOrganizationforStandardizationMAC報文鑒別代碼MessageAuthenticationCodeMF主控文件MasterFileSAM安全存取模塊SecureAccessModuleTLV標簽、長度、值TagLengthValue應(yīng)用模型根據(jù)居民健康卡應(yīng)用規(guī)范,卡中存放了卡片基本信息,用戶個人基本信息,聯(lián)系人信息、醫(yī)學(xué)警示生物標識信息,住院信息、門診記錄信息以及相應(yīng)的證書簽名信息??偣灿涗浀臄?shù)據(jù)項有380多個類別,這些數(shù)據(jù)項分布在卡中不同目錄下不同的文件中??ㄖ胁煌臄?shù)據(jù)文件,根據(jù)其存放數(shù)據(jù)的不同,具有不同的讀寫權(quán)限。具體請參見<居民健康卡安全存取模塊(SAM)卡技術(shù)規(guī)范>附錄表A4密鑰配置表。要讀寫居民健康卡,需要使用符合衛(wèi)生部頒布的相關(guān)規(guī)范的讀寫機具和SAM卡,完成讀寫數(shù)據(jù)所需要的權(quán)限控制,在讀取特定數(shù)據(jù)前,需要根據(jù)其所在文件不同,依據(jù)密鑰配置表去獲取外部認證所需要的密鑰標識用途,密鑰版本等信息。然后經(jīng)過發(fā)送指令到SAM卡進行密鑰分散,使用SM1算法加密數(shù)據(jù)取得SAM卡計算外部認證需要的認證數(shù)據(jù),再發(fā)送給用戶卡完成外部認證以取得相應(yīng)的權(quán)限,此后再根據(jù)所讀取的字段所在文件、記錄號等信息進行數(shù)據(jù)讀寫。為了簡化上層應(yīng)用的開發(fā),讀寫接口將這一過程進行了封裝,應(yīng)用開發(fā)者只需要經(jīng)過接口規(guī)范提供的讀寫函數(shù),設(shè)置所需讀寫居民健康卡中的單個或多個數(shù)據(jù)項,就能夠完成數(shù)據(jù)的讀寫操作。這樣應(yīng)用層就能夠不需要關(guān)心讀寫機具、用戶卡、SAM卡之間的交互,只需要針對所需要數(shù)據(jù)完成業(yè)務(wù)流程的設(shè)計開發(fā)。
接口函數(shù)接口函數(shù)列表如下:函數(shù)名功能備注iDOpenPort打開設(shè)備返回設(shè)備操作句柄iDClosePort關(guān)閉設(shè)備PowerOn設(shè)備復(fù)位返回復(fù)位信息SendAPDU發(fā)送指令iVerifyPIN驗證PIN校驗SAM卡PINiChange_Pin修改PIN修改SAM卡PINiReader_SAM_Public讀取SAM卡公共信息該函數(shù)取得SAM卡片公共信息文件iReader_SAM_Terminal讀取SAM卡片終端信息該函數(shù)取得SAM卡片的終端信息文件iReader_SAM_PublicApp讀取SAM公共應(yīng)用信息該函數(shù)取得SAM卡片的居民健康卡應(yīng)用的公共信息文件iReader_SAM_OrgCertificate讀取SAM卡上的健康卡發(fā)卡機構(gòu)證書該函數(shù)取得SAM卡片的居民健康卡發(fā)卡機構(gòu)證書文件iReader_SAM_Certificate讀取SAM卡的機構(gòu)證書該函數(shù)取得SAM卡片的SAM卡機構(gòu)證書iR_DDF1EF05Info讀取卡中DDF1EF05中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)讀取卡中數(shù)據(jù)(發(fā)卡機構(gòu)基本數(shù)據(jù)文件)iR_DDF1EF06Info讀取卡中DDF1EF06中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)讀取卡中數(shù)據(jù)(持卡人基本信息數(shù)據(jù)文件)iR_DDF1EF07Info讀取卡中DDF1EF07中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)讀取卡中數(shù)據(jù)(照片)iR_DDF1EF08Info讀取卡中DDF1EF08中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)讀取卡中數(shù)據(jù)(有效期等)iW_DDF1EF08Info寫入卡中DDF1EF08中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)寫入卡中數(shù)據(jù)(有效期等)iR_DF01EF05Info讀取卡中DF01EF05中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)讀取卡中數(shù)據(jù)(地址信息文件)iW_DF01EF05Info寫入卡中DDF1EF05中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)寫入卡中數(shù)據(jù)(地址信息文件)iR_DF01EF06Info讀取卡中DF01EF06中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)讀取卡中數(shù)據(jù)(聯(lián)系人信息文件)iW_DF01EF06Info寫入卡中DF01EF06中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)寫入卡中數(shù)據(jù)(聯(lián)系人信息文件)iR_DF01EF07Info讀取卡中DF01EF07中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)讀取卡中數(shù)據(jù)(職業(yè)婚姻信息文件)iW_DF01EF07Info寫入卡中DF01EF07中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)寫入卡中數(shù)據(jù)(職業(yè)婚姻信息文件)iR_DF01EF08Info讀取卡中DF01EF08中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)讀取卡中數(shù)據(jù)(證件記錄信息文件)iW_DF01EF08Info寫入卡中DF01EF08中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)寫入卡中數(shù)據(jù)(證件記錄信息文件)iR_DF02EF05Info讀取卡中DF02EF05中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)讀取卡中數(shù)據(jù)(臨床基本數(shù)據(jù)文件)iW_DF02EF05Info寫入卡中DF02EF05中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)寫入卡中數(shù)據(jù)(臨床基本數(shù)據(jù)文件)iR_DF02EF06Info讀取卡中DF02EF06中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)讀取卡中數(shù)據(jù)(特殊信息數(shù)據(jù)文件)iW_DF02EF06Info寫入卡中DF02EF06中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)寫入卡中數(shù)據(jù)(特殊信息數(shù)據(jù)文件)iR_DF02EF07Info讀取卡中DF02EF07中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)讀取卡中數(shù)據(jù)(過敏基本數(shù)據(jù)文件)iW_DF02EF07Info寫入卡中DF02EF07中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)寫入卡中數(shù)據(jù)(過敏基本數(shù)據(jù)文件)iR_DF02EF08Info讀取卡中DF02EF08中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)讀取卡中數(shù)據(jù)(免疫基本數(shù)據(jù)文件)iW_DF02EF08Info寫入卡中DF02EF08中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)寫入卡中數(shù)據(jù)(免疫基本數(shù)據(jù)文件)iR_DF03EF05Info讀取卡中DF03EF05中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)讀取卡中數(shù)據(jù)(住院信息索引文件)iW_DF03EF05Info寫入卡中DF03EF05中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)寫入卡中數(shù)據(jù)(住院信息索引文件,將住院有效標識更改為0x00)iErase_DF03EF05Info擦出卡中DF03EF05中的數(shù)據(jù)住院信息索引文件,將住院有效標識更改為0xFFiR_DF03EF06Info讀取卡中DF03EF06中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)讀取卡中數(shù)據(jù)(門診信息索引文件)iW_DF03EF06Info寫入卡中DF03EF06中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)寫入卡中數(shù)據(jù)(門診信息索引文件,將門診有效標識更改為0x00)iErase_DF03EF06Info擦出卡中DF03EF06中的數(shù)據(jù)門診信息索引文件,將門診有效標識更改為0xFFiR_DF03EEInfo讀取卡中DF03EE中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)讀取卡中數(shù)據(jù)(住院信息文件)iW_DF03EEInfo寫入卡中DF03EE中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)寫入卡中數(shù)據(jù)(住院信息文件)iR_DF03EDInfo讀取卡中DF03ED中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)讀取卡中數(shù)據(jù)(門診信息文件)iW_DF03EDInfo寫入卡中DF03EE中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)寫入卡中數(shù)據(jù)(門診信息文件)SM3DigestSM3哈希對輸入數(shù)據(jù)分組進行哈希運算SM2SignHashSM2算法數(shù)據(jù)簽名對哈希數(shù)據(jù)進行SM2算法加密設(shè)備管理概述設(shè)備管理函數(shù)主要是檢測設(shè)備,連接關(guān)閉設(shè)備,檢測卡,給卡上下電等操作。這些操作都封裝在以下兩個函數(shù)中。函數(shù)名功能備注iDOpenPort打開設(shè)備返回設(shè)備操作句柄iDClosePort關(guān)閉設(shè)備PowerOn設(shè)備復(fù)位返回復(fù)位信息SendAPDU發(fā)送指令打開設(shè)備函數(shù)原型HANDLEWINAPI iDOpenPort()功能描述打開讀寫機具,等待下一步操作。返回值成功返回0,失敗,返回ERROR_OPEN_FAILED。備注為防止句柄資源泄漏,要求打開一次必須關(guān)閉一次。關(guān)閉設(shè)備函數(shù)原型intWINAPI iDClosePort()返回值成功,返回0,失敗返回相應(yīng)的錯誤碼。設(shè)備復(fù)位函數(shù)原型int__stdcallPowerOn(HANDLEhDev,intslot,char*ATR)功能描述返回復(fù)位信息。參數(shù)hDev[IN]設(shè)備句柄。slot[IN]卡槽號0x01用戶卡0x11PSAM卡ATR[OUT]復(fù)位信息返回值返回值:成功,返回0,失敗返回相應(yīng)的錯誤碼。發(fā)送指令函數(shù)原型int__stdcallSendAPDU( HANDLEhDev, unsignedcharbySlot, unsignedchar*pbyC_Command, unsignedlongbyLen, unsignedchar*pbyR_Command, int*pnRes)功能描述發(fā)送指令。參數(shù)hDev[IN]設(shè)備句柄。bySlot[IN]卡槽號。pbyC_Command[IN]指令數(shù)據(jù)。byLen[IN]指令長度pbyR_Command,[OUT]返回數(shù)據(jù)pnRes[OUT]返回數(shù)據(jù)長度返回值返回值:成功,返回0,失敗返回相應(yīng)的錯誤碼。PSAM卡PIN認證函數(shù)原型int__stdcalliVerifyPIN(HANDLEhDev,char*PIN)功能描述認證PSAM卡PIN參數(shù)hDev[IN]設(shè)備句柄。PIN[IN]PSAM卡PIN。返回值返回值:成功,返回0,失敗返回相應(yīng)的錯誤碼。PSAM卡PIN修改函數(shù)原型int__stdcalliChange_Pin(HANDLEhDev,char*oldPin,char*newPin)功能描述修改PSAM卡PIN參數(shù)hDev[IN]設(shè)備句柄。oldPin[IN]PSAM卡原有的PIN。newPin[IN]PSAM卡新的PIN。返回值返回值:成功,返回0,失敗返回相應(yīng)的錯誤碼。讀取SAM卡片公共信息文件函數(shù)原型int__stdcalliReader_SAM_Public(HANDLEhDev,char*info)功能描述取得SAM卡片公共信息文件參數(shù)hDev[IN]設(shè)備句柄。info[OUT]獲取的卡片公共信息返回值返回值:成功,返回0,失敗返回相應(yīng)的錯誤碼。讀取SAM卡片的終端信息文件函數(shù)原型int__stdcalliReader_SAM_Terminal(HANDLEhDev,char*info)功能描述取得SAM卡片卡片的終端信息文件參數(shù)hDev[IN]設(shè)備句柄。info[OUT]獲取的卡片終端信息返回值返回值:成功,返回0,失敗返回相應(yīng)的錯誤碼。讀取SAM卡片的居民健康卡應(yīng)用的公共信息文件函數(shù)原型int__stdcalliReader_SAM_PublicApp(HANDLEhDev,char*info)功能描述取得SAM卡片的居民健康卡應(yīng)用的公共信息文件參數(shù)hDev[IN]設(shè)備句柄。info[OUT]獲取的居民健康卡應(yīng)用的公共信息返回值返回值:成功,返回0,失敗返回相應(yīng)的錯誤碼。讀取SAM卡片的居民健康卡發(fā)卡機構(gòu)證書文件函數(shù)原型int__stdcalliReader_SAM_OrgCertificate(HANDLEhDev,char*info)功能描述取得SAM卡片的居民健康卡發(fā)卡機構(gòu)證書文件參數(shù)hDev[IN]設(shè)備句柄。info[OUT]獲取的居民健康卡發(fā)卡機構(gòu)證書返回值返回值:成功,返回0,失敗返回相應(yīng)的錯誤碼。讀取SAM卡片的SAM卡機構(gòu)證書函數(shù)原型int__stdcalliReader_SAM_Certificate(HANDLEhDev,char*info)功能描述SAM卡片的SAM卡機構(gòu)證書參數(shù)hDev參數(shù)info[OUT]獲取的SAM卡機構(gòu)證書返回值返回值:成功,返回0,失敗返回相應(yīng)的錯誤碼。用戶卡讀寫函數(shù)名功能備注iR_DDF1EF05Info讀取卡中DDF1EF05中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)讀取卡中數(shù)據(jù)(發(fā)卡機構(gòu)基本數(shù)據(jù)文件)iR_DDF1EF06Info讀取卡中DDF1EF06中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)讀取卡中數(shù)據(jù)(持卡人基本信息數(shù)據(jù)文件)iR_DDF1EF07Info讀取卡中DDF1EF07中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)讀取卡中數(shù)據(jù)(照片)iR_DDF1EF08Info讀取卡中DDF1EF08中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)讀取卡中數(shù)據(jù)(有效期等)iW_DDF1EF08Info寫入卡中DDF1EF08中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)寫入卡中數(shù)據(jù)(有效期等)iR_DF01EF05Info讀取卡中DF01EF05中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)讀取卡中數(shù)據(jù)(地址信息文件)iW_DF01EF05Info寫入卡中DDF1EF05中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)寫入卡中數(shù)據(jù)(地址信息文件)iR_DF01EF06Info讀取卡中DF01EF06中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)讀取卡中數(shù)據(jù)(聯(lián)系人信息文件)iW_DF01EF06Info寫入卡中DF01EF06中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)寫入卡中數(shù)據(jù)(聯(lián)系人信息文件)iR_DF01EF07Info讀取卡中DF01EF07中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)讀取卡中數(shù)據(jù)(職業(yè)婚姻信息文件)iW_DF01EF07Info寫入卡中DF01EF07中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)寫入卡中數(shù)據(jù)(職業(yè)婚姻信息文件)iR_DF01EF08Info讀取卡中DF01EF08中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)讀取卡中數(shù)據(jù)(證件記錄信息文件)iW_DF01EF08Info寫入卡中DF01EF08中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)寫入卡中數(shù)據(jù)(證件記錄信息文件)iR_DF02EF05Info讀取卡中DF02EF05中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)讀取卡中數(shù)據(jù)(臨床基本數(shù)據(jù)文件)iW_DF02EF05Info寫入卡中DF02EF05中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)寫入卡中數(shù)據(jù)(臨床基本數(shù)據(jù)文件)iR_DF02EF06Info讀取卡中DF02EF06中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)讀取卡中數(shù)據(jù)(特殊信息數(shù)據(jù)文件)iW_DF02EF06Info寫入卡中DF02EF06中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)寫入卡中數(shù)據(jù)(特殊信息數(shù)據(jù)文件)iR_DF02EF07Info讀取卡中DF02EF07中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)讀取卡中數(shù)據(jù)(過敏基本數(shù)據(jù)文件)iW_DF02EF07Info寫入卡中DF02EF07中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)寫入卡中數(shù)據(jù)(過敏基本數(shù)據(jù)文件)iR_DF02EF08Info讀取卡中DF02EF08中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)讀取卡中數(shù)據(jù)(免疫基本數(shù)據(jù)文件)iW_DF02EF08Info寫入卡中DF02EF08中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)寫入卡中數(shù)據(jù)(免疫基本數(shù)據(jù)文件)iR_DF03EF05Info讀取卡中DF03EF05中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)讀取卡中數(shù)據(jù)(住院信息索引文件)iW_DF03EF05Info寫入卡中DF03EF05中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)寫入卡中數(shù)據(jù)(住院信息索引文件,將住院有效標識更改為0x00)iErase_DF03EF05Info擦出卡中DF03EF05中的數(shù)據(jù)住院信息索引文件,將住院有效標識更改為0xFFiR_DF03EF06Info讀取卡中DF03EF06中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)讀取卡中數(shù)據(jù)(門診信息索引文件)iW_DF03EF06Info寫入卡中DF03EF06中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)寫入卡中數(shù)據(jù)(門診信息索引文件,將門診有效標識更改為0x00)iErase_DF03EF06Info擦出卡中DF03EF06中的數(shù)據(jù)門診信息索引文件,將門診有效標識更改為0xFFiR_DF03EEInfo讀取卡中DF03EE中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)讀取卡中數(shù)據(jù)(住院信息文件)iW_DF03EEInfo寫入卡中DF03EE中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)寫入卡中數(shù)據(jù)(住院信息文件)iR_DF03EDInfo讀取卡中DF03ED中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)讀取卡中數(shù)據(jù)(門診信息文件)iW_DF03EDInfo寫入卡中DF03EE中的數(shù)據(jù)根據(jù)函數(shù)各參數(shù)寫入卡中數(shù)據(jù)(門診信息文件)讀發(fā)卡機構(gòu)基本數(shù)據(jù)文件接口函數(shù)原型int__stdcalliR_DDF1EF05Info(HANDLEhDev,char*KLB,char*GFBB,char*FKJGMC,char*FKJGDM,char*FKJGZS,char*FKSJ,char*KH,char*AQM,char*XPXLH,char*YYCSDM)功能描述根據(jù)用戶設(shè)置的函數(shù)參數(shù),讀取用戶卡內(nèi)相關(guān)字段數(shù)據(jù)。參數(shù)hDev[IN]設(shè)備句柄。KLB[OUT]卡類別代碼。GFBB[OUT]規(guī)范版本。FKJGMC[OUT]發(fā)卡機構(gòu)名稱。FKJGDM[OUT]發(fā)卡機構(gòu)代碼FKJGZS[OUT]發(fā)卡機構(gòu)證書FKSJ[OUT]發(fā)卡時間KH[OUT]卡號AQM[OUT]安全碼XPXLH[OUT]芯片序列號YYCSDM[OUT]應(yīng)用城市代碼返回值如果成功,返回0;否則返回錯誤代碼。備注發(fā)卡時間為YYYYMMDD格式;卡號,與居民身份證號或者證件號碼一致。讀持卡人基本信息數(shù)據(jù)文件接口函數(shù)原型int__stdcalliR_DDF1EF06Info( HANDLEhDev, char*XM, char*XB, char*MZ, char*CSRQ, char*SFZH)功能描述根據(jù)用戶設(shè)置的函數(shù)參數(shù),讀取用戶卡內(nèi)相關(guān)字段數(shù)據(jù)。參數(shù)hDev[IN]設(shè)備句柄。XM[OUT]姓名。XB[OUT]性別代碼。MZ[OUT]民族代碼。CSRQ[OUT]出生日期。SFZH[OUT]居民身份證號。返回值如果成功,返回0;否則返回錯誤代碼。讀照片文件接口函數(shù)原型int__stdcalliR_DDF1EF07Info(HANDLEhDev,BYTE*ZHAOPIAN)功能描述根據(jù)用戶設(shè)置的函數(shù)參數(shù),讀取用戶卡內(nèi)相關(guān)字段數(shù)據(jù)。參數(shù)hDev[IN]設(shè)備句柄。ZHAOPIAN[OUT]照片。返回值如果成功,返回0;否則返回錯誤代碼。讀寫有效期等文件接口讀有效期等文件接口:函數(shù)原型int__stdcalliR_DDF1EF08Info( HANDLEhDev, KYXQ, BRDH1, BRDH2, YLFYZFFS1, YLFYZFFS2, YLFYZFFS3)功能描述根據(jù)用戶設(shè)置的函數(shù)參數(shù),讀取用戶卡內(nèi)相關(guān)字段數(shù)據(jù)。參數(shù)hDev[IN]設(shè)備句柄。KYXQ[OUT]卡有效期。BRDH1[OUT]本人電話1。BRDH2[OUT]本人電話2。YLFYZFFS1[OUT]醫(yī)療費用支付方式1YLFYZFFS2[OUT]醫(yī)療費用支付方式2YLFYZFFS3[OUT]醫(yī)療費用支付方式3返回值如果成功,返回0;否則返回錯誤代碼。備注卡有效期為YYYYMMDD格式。寫有效期等文件接口:函數(shù)原型int__stdcalliW_DDF1EF08Info( HANDLEhDev, KYXQ, BRDH1, BRDH2, YLFYZFFS1, YLFYZFFS2, YLFYZFFS3)功能描述根據(jù)用戶設(shè)置的函數(shù)參數(shù),寫入用戶卡內(nèi)相關(guān)字段數(shù)據(jù)。參數(shù)hDev[IN]設(shè)備句柄。KYXQ[IN]卡有效期。BRDH1[IN]本人電話1。BRDH2[IN]本人電話2。YLFYZFFS1[IN]醫(yī)療費用支付方式1YLFYZFFS2[IN]醫(yī)療費用支付方式2YLFYZFFS3[IN]醫(yī)療費用支付方式3返回值如果成功,返回0;否則返回錯誤代碼。備注卡有效期為YYYYMMDD格式;相關(guān)字段數(shù)據(jù)長度參見:附錄B。讀寫地址信息文件接口讀地址信息文件接口:函數(shù)原型int__stdcalliR_DF01EF05Info( HANDLEhDev, char*DZLB1, char*DZ1, char*DZLB2, char*DZ2)功能描述根據(jù)用戶設(shè)置的函數(shù)參數(shù),讀取用戶卡內(nèi)相關(guān)字段數(shù)據(jù)。參數(shù)hDev[IN]設(shè)備句柄。DZLB1[OUT]地址類別1。DZ1[OUT]地址1。DZLB2[OUT]地址類別2。DZ2[OUT]地址2。返回值如果成功,返回0;否則返回錯誤代碼。寫地址信息文件接口:函數(shù)原型int__stdcalliW_DF01EF05Info( HANDLEhDev, char*DZLB1, char*DZ1, char*DZLB2, char*DZ2)功能描述根據(jù)用戶設(shè)置的函數(shù)參數(shù),寫入用戶卡內(nèi)相關(guān)字段數(shù)據(jù)。參數(shù)hDev[IN]設(shè)備句柄。DZLB1[IN]地址類別1。DZ1[IN]地址1。DZLB2[IN]地址類別2。DZ2[IN]地址2。返回值如果成功,返回0;否則返回錯誤代碼。備注相關(guān)字段數(shù)據(jù)長度參見:附錄B。讀寫聯(lián)系人信息文件接口讀聯(lián)系人信息文件接口:函數(shù)原型int__stdcalliR_DF01EF06Info( HANDLEhDev, char*LXRXM1, char*LXRGX1, char*LXRDH1, char*LXRXM2, char*LXRGX2, char*LXRDH2, char*LXRXM3, char*LXRGX3, char*LXRDH3)功能描述根據(jù)用戶設(shè)置的函數(shù)參數(shù),讀取用戶卡內(nèi)相關(guān)字段數(shù)據(jù)。參數(shù)hDev[IN]設(shè)備句柄。LXRXM1[OUT]聯(lián)系人姓名1。LXRGX1[OUT]聯(lián)系人關(guān)系代碼1。LXRDH1[OUT]聯(lián)系人電話1。LXRXM2[OUT]聯(lián)系人姓名2。LXRGX2[OUT]聯(lián)系人關(guān)系代碼2。LXRDH2[OUT]聯(lián)系人電話2。LXRXM3[OUT]聯(lián)系人姓名3。LXRGX3[OUT]聯(lián)系人關(guān)系代碼3。LXRDH3[OUT]聯(lián)系人電話3。返回值如果成功,返回0;否則返回錯誤代碼。寫聯(lián)系人信息文件接口:函數(shù)原型int__stdcalliW_DF01EF06Info( HANDLEhDev, char*LXRXM1, char*LXRGX1, char*LXRDH1, char*LXRXM2, char*LXRGX2, char*LXRDH2, char*LXRXM3, char*LXRGX3, char*LXRDH3)功能描述該接口根據(jù)傳入的參數(shù),寫入卡內(nèi)對應(yīng)的各字段數(shù)據(jù)。參數(shù)hDev[IN]設(shè)備句柄。LXRXM1[IN]聯(lián)系人姓名1。LXRGX1[IN]聯(lián)系人關(guān)系代碼1。LXRDH1[IN]聯(lián)系人電話1。LXRXM2[IN]聯(lián)系人姓名2。LXRGX2[IN]聯(lián)系人關(guān)系代碼2。LXRDH2[IN]聯(lián)系人電話2。LXRXM3[IN]聯(lián)系人姓名3。LXRGX3[IN]聯(lián)系人關(guān)系代碼3。LXRDH3[IN]聯(lián)系人電話3。返回值如果成功,返回0;否則返回錯誤代碼。備注相關(guān)字段數(shù)據(jù)長度參見:附錄B。讀寫職業(yè)婚姻信息文件接口讀職業(yè)婚姻信息文件接口:函數(shù)原型int__stdcalliR_DF01EF07Info( HANDLEhDev, char*WHCD, char*HYZK, char*ZY)功能描述根據(jù)用戶設(shè)置的函數(shù)參數(shù),讀取用戶卡內(nèi)相關(guān)字段數(shù)據(jù)。參數(shù)hDev[IN]設(shè)備句柄。WHCD[OUT]文化程度代碼。HYZK[OUT]婚姻狀況代碼。ZY[OUT]職業(yè)代碼。返回值如果成功,返回0;否則返回錯誤代碼。寫職業(yè)婚姻信息文件接口:函數(shù)原型int__stdcalliW_DF01EF07Info( HANDLEhDev, char*WHCD, char*HYZK, char*ZY)功能描述根據(jù)用戶設(shè)置的函數(shù)參數(shù),寫入用戶卡內(nèi)相關(guān)字段數(shù)據(jù)。參數(shù)hDev[IN]設(shè)備句柄。WHCD[IN]文化程度代碼。HYZK[IN]婚姻狀況代碼。ZY[IN]職業(yè)代碼。返回值如果成功,返回0;否則返回錯誤代碼。備注相關(guān)字段數(shù)據(jù)長度參見:附錄B。讀寫證件記錄信息文件接口讀證件記錄信息文件接口:函數(shù)原型int__stdcalliR_DF01EF08Info( HANDLEhDev, char*ZJLB, char*ZJHM, char*JKDAH, char*XNHZH)功能描述根據(jù)用戶設(shè)置的函數(shù)參數(shù),讀取用戶卡內(nèi)相關(guān)字段數(shù)據(jù)。參數(shù)hDev[IN]設(shè)備句柄。ZJLB[OUT]證件類別代碼。ZJHM[OUT]證件號碼。JKDAH[OUT]健康檔案號。XNHZH[OUT]新農(nóng)合證號。返回值如果成功,返回0;否則返回錯誤代碼。寫證件記錄信息文件接口:函數(shù)原型int__stdcalliW_DF01EF08Info( HANDLEhDev, char*ZJLB, char*ZJHM, char*JKDAH, char*XNHZH)功能描述根據(jù)用戶設(shè)置的函數(shù)參數(shù),寫入用戶卡內(nèi)相關(guān)字段數(shù)據(jù)。參數(shù)hDev[IN]設(shè)備句柄。ZJLB[IN]證件類別代碼。ZJHM[IN]證件號碼。JKDAH[IN]健康檔案號。XNHZH[IN]新農(nóng)合證號。返回值如果成功,返回0;否則返回錯誤代碼。備注相關(guān)字段數(shù)據(jù)長度參見:附錄B。讀寫臨床基本數(shù)據(jù)文件接口讀臨床基本數(shù)據(jù)文件接口:函數(shù)原型int__stdcalliR_DF02EF05Info( HANDLEhDev, char*ABOXX, char*RHXX, char*XCBZ, char*XZBBZ, char*XNXGBBZ, char*DXBBZ, char*NXWLBZ, char*TNBBZ, char*QGYBZ, char*TXBZ, char*QGYZBZ, char*QGQSBZ, char*KZXYZBZ, char*XZQBQBZ, char*QTYXJSMC)功能描述根據(jù)用戶設(shè)置的函數(shù)參數(shù),讀取用戶卡內(nèi)相關(guān)字段數(shù)據(jù)。參數(shù)hDev[IN]設(shè)備句柄。ABOXX[OUT]ABO血型代碼。RHXX[OUT]RH血型代碼。XCBZ[OUT]哮喘標志。XZBBZ[OUT]心臟病標志XNXGBBZ[OUT]心腦血管病標志DXBBZ[OUT]癲癇病標志NXWLBZ[OUT]凝血紊亂標志TNBBZ[OUT]糖尿病標志QGYBZ[OUT]青光眼標志TXBZ[OUT]透析標志QGYZBZ[OUT]器官移植標志QGQSBZ[OUT]器官缺失標志KZXYZBZ[OUT]可裝卸義肢標志XZQBQBZ[OUT]心臟起搏器標志QTYXJSMC[OUT]其它醫(yī)學(xué)警示名稱返回值如果成功,返回0;否則返回錯誤代碼。寫臨床基本數(shù)據(jù)文件接口:函數(shù)原型int__stdcalliW_DF02EF05Info( HANDLEhDev, char*ABOXX, char*RHXX, char*XCBZ, char*XZBBZ, char*XNXGBBZ, char*DXBBZ, char*NXWLBZ, char*TNBBZ, char*QGYBZ, char*TXBZ, char*QGYZBZ, char*QGQSBZ, char*KZXYZBZ, char*XZQBQBZ, char*QTYXJSMC)功能描述根據(jù)用戶設(shè)置的函數(shù)參數(shù),寫入用戶卡內(nèi)相關(guān)字段數(shù)據(jù)。參數(shù)hDev[IN]設(shè)備句柄。ABOXX[IN]ABO血型代碼。RHXX[IN]RH血型代碼。XCBZ[IN]哮喘標志。XZBBZ[IN]心臟病標志XNXGBBZ[IN]心腦血管病標志DXBBZ[IN]癲癇病標志NXWLBZ[IN]凝血紊亂標志TNBBZ[IN]糖尿病標志QGYBZ[IN]青光眼標志TXBZ[IN]透析標志QGYZBZ[IN]器官移植標志QGQSBZ[IN]器官缺失標志KZXYZBZ[IN]可裝卸義肢標志XZQBQBZ[IN]心臟起搏器標志QTYXJSMC[IN]其它醫(yī)學(xué)警示名稱返回值如果成功,返回0;否則返回錯誤代碼。備注相關(guān)字段數(shù)據(jù)長度參見:附錄B。讀寫特殊信息數(shù)據(jù)文件接口讀特殊信息數(shù)據(jù)文件接口:函數(shù)原型int__stdcalliR_DF02EF06Info(HANDLEhDev,char*JSBBZ)功能描述根據(jù)用戶設(shè)置的函數(shù)參數(shù),讀取用戶卡內(nèi)相關(guān)字段數(shù)據(jù)。參數(shù)hDev[IN]設(shè)備句柄。JSBBZ[OUT]精神病標志。返回值如果成功,返回0;否則返回錯誤代碼。寫特殊信息數(shù)據(jù)文件接口:函數(shù)原型int__stdcalliW_DF02EF06Info(HANDLEhDev,char*JSBBZ)功能描述根據(jù)用戶設(shè)置的函數(shù)參數(shù),寫入用戶卡內(nèi)相關(guān)字段數(shù)據(jù)。參數(shù)hDev[IN]設(shè)備句柄。JSBBZ[IN]精神病標志。返回值如果成功,返回0;否則返回錯誤代碼。備注相關(guān)字段數(shù)據(jù)長度參見:附錄B。讀寫過敏基本數(shù)據(jù)文件接口讀過敏基本數(shù)據(jù)文件接口:函數(shù)原型int__stdcalliR_DF02EF07Info( HANDLEhDev, intnRecorderNo, char*GMWZMC, char*GMWZFY)功能描述根據(jù)用戶設(shè)置的函數(shù)參數(shù),讀取用戶卡內(nèi)相關(guān)字段數(shù)據(jù)。參數(shù)hDev[IN]設(shè)備句柄。nRecorderNo[IN]記錄號。GMWZMC[OUT]過敏物質(zhì)名稱。GMWZFY[OUT]過敏物質(zhì)反應(yīng)。返回值如果成功,返回0;否則返回錯誤代碼。寫過敏基本數(shù)據(jù)文件接口:函數(shù)原型int__stdcalliW_DF02EF07Info( HANDLEhDev, char*GMWZMC, char*GMWZFY)功能描述根據(jù)用戶設(shè)置的函數(shù)參數(shù),寫入用戶卡內(nèi)相關(guān)字段數(shù)據(jù)。參數(shù)hDev[IN]設(shè)備句柄。GMWZMC[IN]過敏物質(zhì)名稱。GMWZFY[IN]過敏物質(zhì)反應(yīng)。返回值如果成功,返回0;否則返回錯誤代碼。備注該接口根據(jù)傳入的參數(shù),成功后修改參數(shù)對應(yīng)的各字段數(shù)據(jù)。由于是循環(huán)記錄,新寫入的數(shù)據(jù)永遠是第一條數(shù)據(jù)。相關(guān)字段數(shù)據(jù)長度參見:附錄B。讀寫免疫基本數(shù)據(jù)文件接口讀免疫基本數(shù)據(jù)文件接口:函數(shù)原型int__stdcalliR_DF02EF08Info( HANDLEhDev, intnRecorderNo, char*MYJZMC, char*MYJZSJ)功能描述根據(jù)用戶設(shè)置的函數(shù)參數(shù),讀取用戶卡內(nèi)相關(guān)字段數(shù)據(jù)。參數(shù)hDev[IN]設(shè)備句柄。nRecorderNo[IN]記錄號。MYJZMC[OUT]免疫接種名稱。MYJZSJ[OUT]免疫接種時間。返回值如果成功,返回0;否則返回錯誤代碼。寫免疫基本數(shù)據(jù)文件接口:函數(shù)原型int__stdcalliW_DF02EF08Info(HANDLEhDev, char*GMWZMC, char*GMFY)功能描述根據(jù)用戶設(shè)置的函數(shù)參數(shù),寫入用戶卡內(nèi)相關(guān)字段數(shù)據(jù)。參數(shù)hDev[IN]設(shè)備句柄。MYJZMC[IN]免疫接種名稱。MYJZSJ[IN]免疫接種時間。返回值如果成功,返回0;否則返回錯誤代碼。備注該接口根據(jù)傳入的參數(shù),成功后修改參數(shù)對應(yīng)的各字段數(shù)據(jù)。由于是循環(huán)記錄,新寫入的數(shù)據(jù)永遠是第一條數(shù)據(jù)。相關(guān)字段數(shù)據(jù)長度參見:附錄B。讀寫住院信息索引文件接口讀住院信息索引文件接口:函數(shù)原型int__stdcalliR_DF03EF05Info( HANDLEhDev, char*ZYJLBS1, char*ZYJLBS2, char*ZYJLBS3)功能描述根據(jù)用戶設(shè)置的函數(shù)參數(shù),讀取用戶卡內(nèi)相關(guān)字段數(shù)據(jù)。參數(shù)hDev[IN]設(shè)備句柄。ZYJLBS1[OUT]住院記錄有效標志1。ZYJLBS2[OUT]住院記錄有效標志2。ZYJLBS3[OUT]住院記錄有效標志3。返回值如果成功,返回0;否則返回錯誤代碼。寫住院信息索引文件接口:函數(shù)原型int__stdcalliW_DF03EF05Info(HANDLEhDev,intnRecorderNo)功能描述根據(jù)用戶設(shè)置的函數(shù)參數(shù),寫入用戶卡內(nèi)相關(guān)字段數(shù)據(jù)。將住院有效標識更改為0x00。參數(shù)hDev[IN]設(shè)備句柄。nRecorderNo[IN]記錄號。返回值如果成功,返回0;否則返回錯誤代碼。擦除住院信息索引文件接口:函數(shù)原型int__stdcalliErase_DF03EF05Info(HANDLEhDev,intnRecorderNo)功能描述根據(jù)用戶設(shè)置的函數(shù)參數(shù),寫入用戶卡內(nèi)相關(guān)字段數(shù)據(jù)。將住院有效標識更改為0xff。參數(shù)hDev[IN]設(shè)備句柄。nRecorderNo[IN]記錄號。返回值如果成功,返回0;否則返回錯誤代碼。讀寫門診信息索引文件接口讀門診信息索引文件接口:函數(shù)原型int__stdcalliR_DF03EF06Info( HANDLEhDev, char*MZJLBS1, char*MZJLBS2, char*MZJLBS3, char*MZJLBS4, char*MZJLBS5)功能描述根據(jù)用戶設(shè)置的函數(shù)參數(shù),讀取用戶卡內(nèi)相關(guān)字段數(shù)據(jù)。參數(shù)hDev[IN]設(shè)備句柄。MZJLBS1[OUT]門診記錄有效標識1。MZJLBS2[OUT]門診記錄有效標識2。MZJLBS3[OUT]門診記錄有效標識3。MZJLBS4[OUT]門診記錄有效標識4。MZJLBS5[OUT]門診記錄有效標識5。返回值如果成功,返回0;否則返回錯誤代碼。寫門診信息索引文件接口:函數(shù)原型int__stdcalliW_DF03EF06Info(HANDLEhDev,intnRecorderNo)功能描述根據(jù)用戶設(shè)置的函數(shù)參數(shù),寫入用戶卡內(nèi)相關(guān)字段數(shù)據(jù)。將門診有效標識更改為0x00參數(shù)hDev[IN]設(shè)備句柄。nRecorderNo[IN]記錄號。返回值如果成功,返回0;否則返回錯誤代碼。擦除門診信息索引文件接口:函數(shù)原型int__stdcalliErase_DF03EF06Info(HANDLEhDev,intnRecorderNo)功能描述根據(jù)用戶設(shè)置的函數(shù)參數(shù),寫入用戶卡內(nèi)相關(guān)字段數(shù)據(jù)。將門診有效標識更改為0xFF。參數(shù)hDev[IN]設(shè)備句柄。nRecorderNo[IN]記錄號。返回值如果成功,返回0;否則返回錯誤代碼。讀寫住院信息文件接口讀住院信息文件接口:函數(shù)原型int__stdcalliR_DF03EEInfo( HANDLEhDev, int nRecorderNo, char*szData, int nPos, int nLen, int nStyle)功能描述根據(jù)用戶設(shè)置的函數(shù)參數(shù),讀取用戶卡內(nèi)相關(guān)字段數(shù)據(jù)。參數(shù)hDev[IN]設(shè)備句柄。nRecorderNo[IN]文件記錄號,取值:”1”-”3nPos[IN]偏移地址。nLen[IN]數(shù)據(jù)長度nStyle[IN]數(shù)據(jù)類型szData[OUT]數(shù)據(jù)地址。返回值如果成功,返回0;否則返回錯誤代碼。備注1.在執(zhí)行函數(shù)前,需要調(diào)用iR_DF03EF06Info函數(shù),獲得住院記錄有效標志。只有住院記錄有效標志為0x00的記錄才能讀寫。2.nStyle能夠取值如下NO_style 0x00AN_style 0x01CN_style 0x0FB_style 0xFF3.如果全讀全寫,比如讀寫整個EE01的數(shù)據(jù),那么nStyle=NO_style,pos=0,Len=1639(不需要操作EEXX文件的最后2項)文件最后2項為”簽名”操作時才寫入的數(shù)據(jù)。4.如果讀寫具體數(shù)據(jù)項,nPos\nLen\nStyle的取值請參考<居民健康卡技術(shù)規(guī)范>。5.pos\len取值的單位是卡內(nèi)部存儲空間的字節(jié)的大小6.如果卡內(nèi)存儲數(shù)據(jù)的類型是CN_style和B_style,szData的size需要大于(卡內(nèi)存儲空間的2倍+1)寫住院信息文件接口:函數(shù)原型int__stdcalliW_DF03EEInfo( HANDLEhDev, int nRecorderNo, char*szData, int nPos, int nLen, int nStyle)功能描述根據(jù)用戶設(shè)置的函數(shù)參數(shù),寫入用戶卡內(nèi)相關(guān)字段數(shù)據(jù)。參數(shù)hDev[IN]設(shè)備句柄。nRecorderNo[IN]記錄號。nPos[IN]偏移地址。nLen[IN]數(shù)據(jù)長度。nStyle[IN]數(shù)據(jù)類型。szData[IN]數(shù)據(jù)地址。返回值如果成功,返回0;否則返回錯誤代碼。備注在執(zhí)行函數(shù)前,需要調(diào)用iR_DF03EF06Info函數(shù),獲得住院記錄有效標志。住院記錄有效標志為0x00的記錄才能讀寫。全讀全寫住院信息文件接口全讀住院信息文件接口:函數(shù)原型int__stdcalliR_DF03EE_ALLInfo(HANDLEhDev, intnRecorderNo, char*szData );功能描述根據(jù)用戶設(shè)置的函數(shù)參數(shù),讀取用戶卡內(nèi)相關(guān)字段數(shù)據(jù)。參數(shù)hDev[IN]設(shè)備句柄。nRecorderNo[IN]文件記錄號,取值:”1”-”3szData[OUT]數(shù)據(jù)地址。返回值如果成功,返回0;否則返回錯誤代碼。備注1.在執(zhí)行函數(shù)前,需要調(diào)用iR_DF03EF06Info函數(shù),獲得住院記錄有效標志。只有住院記錄有效標志為0x00的記錄才能讀寫。2.全讀全寫,讀寫整個EE01的數(shù)據(jù),需要將所有數(shù)據(jù)項時組織在一起,逐個用”|”分隔符分隔后,寫入卡片,讀出的數(shù)據(jù)各個數(shù)據(jù)項也是用”|”分隔,需自己解析。數(shù)據(jù)項1|數(shù)據(jù)項2|數(shù)據(jù)項3|數(shù)據(jù)項4|..|…4.如果讀寫具體數(shù)據(jù)項,各個數(shù)據(jù)項的數(shù)據(jù)類型的取值請參考<居民健康卡技術(shù)規(guī)范>。如果為CN型,需轉(zhuǎn)換為可識別字符串例如日期:2011全寫住院信息文件接口:函數(shù)原型int__stdcalliW_DF03EE_ALLInfo(HANDLEhDev, intnRecorderNo, char*szData );功能描述根據(jù)用戶設(shè)置的函數(shù)參數(shù),讀取用戶卡內(nèi)相關(guān)字段數(shù)據(jù)。參數(shù)hDev[IN]設(shè)備句柄。nRecorderNo[IN]文件記錄號,取值:”1”-”3szData[OUT]數(shù)據(jù)地址。返回值如果成功,返回0;否則返回錯誤代碼。備注1.在執(zhí)行函數(shù)前,需要調(diào)用iR_DF03EF06Info函數(shù),獲得住院記錄有效標志。只有住院記錄有效標志為0x00的記錄才能讀寫。2.全讀全寫,讀寫整個EE01的數(shù)據(jù),需要將所有數(shù)據(jù)項時組織在一起,逐個用”|”分隔符分隔后,寫入卡片,讀出的數(shù)據(jù)各個數(shù)據(jù)項也是用”|”分隔,需自己解析。數(shù)據(jù)項1|數(shù)據(jù)項2|數(shù)據(jù)項3|數(shù)據(jù)項4|..|…4.如果讀寫具體數(shù)據(jù)項,各個數(shù)據(jù)項的數(shù)據(jù)類型的取值請參考<居民健康卡技術(shù)規(guī)范>。如果為CN型,需轉(zhuǎn)換為可識別字符串例如日期:2011讀寫門診信息文件接口讀過門診信息文件接口:函數(shù)原型int__stdcalliR_DF03EDInfo( HANDLEhDev, int nRecorderNo, char*szData, int nPos, int nLen, int nStyle)功能描述根據(jù)用戶設(shè)置的函數(shù)參數(shù),讀取用戶卡內(nèi)相關(guān)字段數(shù)據(jù)。參數(shù)hDev[IN]設(shè)備句柄。nRecorderNo[IN]文件記錄號,取值:”1”-”5nPos[IN]偏移地址。nLen[IN]數(shù)據(jù)長度。nStyle[IN]數(shù)據(jù)類型。szData[OUT]數(shù)據(jù)地址。返回值如果成功,返回0;否則返回錯誤代碼。備注在執(zhí)行函數(shù)前,需要調(diào)用iR_DF03EF06Info函數(shù),獲得門診記錄有效標識。只有門診記錄有效標識為0x00的記錄才能讀寫。寫過門診信息文件接口:函數(shù)原型int__stdcalliW_DF03EDInfo( HANDLEhDev, int nRecorderNo, char*szData, int nPos, int nLen, int nStyle)功能描述根據(jù)用戶設(shè)置的函數(shù)參數(shù),寫入用戶卡內(nèi)相關(guān)字段數(shù)據(jù)。參數(shù)hDev[IN]設(shè)備句柄。nRecorderNo[IN]記錄號。nPos[IN]偏移地址。nLen[IN]數(shù)據(jù)長度。nStyle[IN]數(shù)據(jù)類型。szData[IN]數(shù)據(jù)地址。返回值如果成功,返回0;否則返回錯誤代碼。備注在執(zhí)行函數(shù)前,需要調(diào)用iR_DF03EF06Info函數(shù),獲得門診記錄有效標識。只有門診記錄有效標識為0x00的記錄才能讀寫。全讀全寫門診信息文件接口全讀門診信息文件接口:函數(shù)原型int__stdcalliR_DF03ED_ALLInfo(HANDLEhDev, intnRecorderNo, char*szData );功能描述根據(jù)用戶設(shè)置的函數(shù)參數(shù),讀取用戶卡內(nèi)相關(guān)字段數(shù)據(jù)。參數(shù)hDev[IN]設(shè)備句柄。nRecorderNo[IN]文件記錄號,取值:”1”-”3szData[OUT]數(shù)據(jù)地址。返回值如果成功,返回0;否則返回錯誤代碼。備注1.在執(zhí)行函數(shù)前,需要調(diào)用iR_DF03EF06Info函數(shù),獲得門診記錄有效標志。只有門診記錄有效標志為0x00的記錄才能讀寫。2.全讀全寫,讀寫整個EE01的數(shù)據(jù),需要將所有數(shù)據(jù)項時組織在一起,逐個用”|”分隔符分隔后,寫入卡片,讀出的數(shù)據(jù)各個數(shù)據(jù)項也是用”|”分隔,需自己解析。數(shù)據(jù)項1|數(shù)據(jù)項2|數(shù)據(jù)項3|數(shù)據(jù)項4|..|…4.如果讀寫具體數(shù)據(jù)項,各個數(shù)據(jù)項的數(shù)據(jù)類型的取值請參考<居民健康卡技術(shù)規(guī)范>。如果為CN型,需轉(zhuǎn)換為可識別字符串例如日期:2011全寫門診信息文件接口:函數(shù)原型int__stdcalliW_DF03ED_ALLInfo(HANDLEhDev, intnRecorderNo, char*szData );功能描述根據(jù)用戶設(shè)置的函數(shù)參數(shù),讀取用戶卡內(nèi)相關(guān)字段數(shù)據(jù)。參數(shù)hDev[IN]設(shè)備句柄。nRecorderNo[IN]文件記錄號,取值:”1”-”3szData[OUT]數(shù)據(jù)地址。返回值如果成功,返回0;否則返回錯誤代碼。備注1.在執(zhí)行函數(shù)前,需要調(diào)用iR_DF03EF06Info函數(shù),獲得門診記錄有效標志。只有門診記錄有效標志為0x00的記錄才能讀寫。2.全讀全寫,讀寫整個EE01的數(shù)據(jù),需要將所有數(shù)據(jù)項時組織在一起,逐個用”|”分隔符分隔后,寫入卡片,讀出的數(shù)據(jù)各個數(shù)據(jù)項也是用”|”分隔,需自己解析。數(shù)據(jù)項1|數(shù)據(jù)項2|數(shù)據(jù)項3|數(shù)據(jù)項4|..|…4.如果讀寫具體數(shù)據(jù)項,各個數(shù)據(jù)項的數(shù)據(jù)類型的取值請參考<居民健康卡技術(shù)規(guī)范>。如果為CN型,需轉(zhuǎn)換為可識別字符串例如日期:2011卡算法服務(wù)函數(shù)名功能備注SM3DigestSM3哈希對輸入數(shù)據(jù)分組進行哈希運算VerifyPin驗證PIN校驗SAM卡PINSM2SignHashSM2算法數(shù)據(jù)簽名對哈希數(shù)據(jù)進行SM2算法加密SM3摘要函數(shù)原型intWINAPISM3Digest(HANDLEhDev, BYTE*pbData, intnDataLen, BYTE*pbHash, BYTE*pbHashLen)功能描述對輸入數(shù)據(jù)進行分組SM3摘要運算,結(jié)果返回數(shù)據(jù)的哈希值。參數(shù)hDev[IN]設(shè)備句柄。pbData[IN]待哈希數(shù)據(jù)。nDataLen[IN]待哈希數(shù)據(jù)長度。pbHash[OUT]哈希結(jié)果。pbHashLen[OUT]指向哈希結(jié)果長度的指針。返回值如果成功,返回0,如果pbData為空,返回ERROR_INVALID_REPORT_BUFFER,如果*pbHashLen<32字節(jié),則返回錯誤:ERROR_DS_USER_BUFFER_TO_SMALL。備注該接口函數(shù),根據(jù)輸入數(shù)據(jù)長度,按照SAM卡支持的SM3算法分組長度對數(shù)據(jù)進行分組進行哈希運算,將哈希結(jié)果輸出到pbHash中,并設(shè)置pbHashLen。對于現(xiàn)有SAM卡中的SM3算法,輸出的數(shù)據(jù)長度是32字節(jié)。PIN驗證函數(shù)函數(shù)原型intWINAPIVerifyPin( HANDLEhDev, constchar*szPin, BYTE*pdwRetry)功能描述驗證PSAM卡PIN,取得相應(yīng)權(quán)限。參數(shù)hDev[IN]設(shè)備句柄。szPin[IN]PIN字符串地址。pdwRetry[OUT]指向允許的重試次數(shù)的BYTE指針。返回值如果成功,返回0,失敗返回相應(yīng)的錯誤碼。備注該接口需要在SM2簽名函數(shù)之前調(diào)用。SM2簽名函數(shù)函數(shù)原型intWINAPISM2SignHash( HANDLEhDev, BYTE*pbData, BYTEbLen, BYTE*pbSignedData, BYTE*pbLength);功能描述對輸入數(shù)據(jù)進行SM2簽名運算。參數(shù)hDev[IN]設(shè)備句柄。pbData[IN]待簽名數(shù)據(jù),原始數(shù)據(jù)的哈希結(jié)果。bLen[IN]待簽名哈希數(shù)據(jù)長度。pbSignedData[OUT]簽名結(jié)果。pbLength[OUT]指向哈希結(jié)果長度的指針。返回值如果成功,返回0,如果hDev=NUL、pbData=NULL或者pbLength=NULL,返回ERROR_INVALID_PARAMETER。備注在執(zhí)行簽名前,需要wsc_VerifyPin驗證PIN獲取相應(yīng)的權(quán)限。
錯誤碼定義#defineIRV_OK 0 //正常#defineIRV_PARA_ERR 101 //輸入?yún)?shù)錯#defineIRV_NO_FILE 102 //文件不存在#defineIRV_RD_RCDERR 103 //讀記錄失敗#defineIRV_CARD_ERR 104 //卡片響應(yīng)異常#defineIRV_PSAM_ERR 105 //PSAM卡片響應(yīng)異常#defineIRV_IRK_VERR 106 //內(nèi)部認證失敗#defineIRV_RD_BINERR 107 //讀BIN失敗#defineIRV_WR_RCDERR 108 //寫記錄失敗#defineIRV_WR_BINERR 109 //寫B(tài)IN失敗#defineIRV_W_DF03EF05ERR 110 //寫DF03EF05失敗#defineIRV_ER_DF03EF05ERR 111 //擦除DF03EF05失敗#defineIRV_RCINVALID 112 //記錄不可用(ef有效標記為ff)#defineIRV_DDF1EF07_DATAERR 113 //照片文件數(shù)據(jù)異常
附錄AVC程序用例設(shè)備管理打開設(shè)備OpenDevice函數(shù)調(diào)用示例: inthDev; hDev=iDOpenPort(); if(hDev!=0){ ….} CloseDevice();為防止句柄資源泄漏,要求打開一次必須關(guān)閉一次。關(guān)閉設(shè)備函數(shù)原型:intWINAPI iDClosePort();返回值:成功,返回0,失敗返回相應(yīng)的錯誤碼。設(shè)備復(fù)位PowerOn函數(shù)調(diào)用示例:nRet=PowerOn(hDev,SLOT_USER,g_USER_ART);if(nRet!=0) { MessageBox("用戶卡上電失敗"); return; }發(fā)送指令SendAPDU函數(shù)調(diào)用示例: unsignedcharpbyC_Command[256]; unsignedcharpbyR_Command[256]; intsResult; intnResLen; pbyC_Command[0]=0x00; pbyC_Command[1]=0xA4; pbyC_Command[2]=0x00; pbyC_Command[3]=0x00; pbyC_Command[4]=0x02; pbyC_Command[5]=(unsignedchar)((wFID>>8)&0xFF); pbyC_Command[6]=(unsignedchar)(wFID&0xFF); sResult=SendAPDU(hDev,bySlot,pbyC_Command,0x07,pbyR_Command,&nResLen); if(sResult==0x6A82) returnres_APP_NOT_EXIST; returnsResult;用戶卡讀寫讀發(fā)卡機構(gòu)基本數(shù)據(jù)文件接口iR_DDF1EF05Inf0函數(shù)調(diào)用示例: charchsKLB[1+1]={0};//卡類別代碼 charchsGFBB[4+1]={0};//規(guī)范版本 charchsFKJGMC[30+1]={0};//發(fā)卡機構(gòu)名稱 charchsFKJGDM[22+1]={0};//發(fā)卡機構(gòu)代碼 charchsFKJGZS[360+1]={0}; //發(fā)卡機構(gòu)證書 charchsFKSJ[8+1]={0};//發(fā)卡時間,YYYYMMDD格式 charchsKH[18+1]={0};//卡號,與居民身份證號或者證件號碼一致 charchsAQM[3+1]={0};//安全碼 charchsXPXLH[10+1]={0};//芯片序列號 charchsYYCSDM[6+1] ={0}; //應(yīng)用城市代碼 intnRet=0; nRet=iR_DDF1EF05Info(HANDLEhDev, chsKLB, chsGFBB, chsFKJGMC, chsFKJGDM, chsFKJGZS, chsFKSJ, chsKH, chsAQM, chsXPXLH, chsYYCSDM); if(nRet==0) { m_cListBox.ResetContent(); m_cListBox.AddString(chsKLB); m_cListBox.AddString(chsGFBB); m_cListBox.AddString(chsFKJGMC); m_cListBox.AddString(chsFKJGDM); m_cListBox.AddString(chsFKJGZS); m_cListBox.AddString(chsFKSJ); m_cListBox.AddString(chsKH); m_cListBox.AddString(chsAQM); m_cListBox.AddString(chsXPXLH); m_cListBox.AddString(chsYYCSDM); } else { CStrings=""; s.Format("ErrorCode:0x%02x",nRet); m_cListBox.ResetContent(); m_cListBox.AddString(s); }讀寫持卡人基本信息數(shù)據(jù)文件接口iR_DDF1EF06Info函數(shù)調(diào)用示例: intnRet=0; charchsXM[30+1]={0};//姓名 charchsXB[2+1]={0};//性別代碼 charchsMZ[2+1]={0};//民族代碼 charchsCSRQ[8+1]={0};//出生日期,YYYYMMDD格式 charchsSFZH[18+1]={0};//居民身份證號 nRet=iR_DDF1EF06Info( HANDLEhDev, chsXM,//姓名 chsXB,//性別代碼 chsMZ,//民族代碼 chsCSRQ,//出生日期,YYYYMMDD格式 chsSFZH,//居民身份證號 ); if(nRet==0) { m_cListBox.ResetContent(); m_cListBox.AddString(chsXM); m_cListBox.AddString(chsXB); m_cListBox.AddString(chsMZ); m_cListBox.AddString(chsCSRQ); m_cListBox.AddString(chsSFZH); } else { CStrings=""; s.Format("ErrorCode:0x%02x",nRet); m_cListBox.ResetContent(); m_cListBox.AddString(s); }讀照片文件接口iR_DDF1EF07Info函數(shù)調(diào)用示例: intnRet=0; intnDataLen=0; BYTEbysZHAOPIAN[3072]={0}; nRe
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 土木課題申報書范文
- 千金合同合同范本
- 公司注冊股東合同范本
- 單獨招生機電類練習題庫與答案
- MySQL數(shù)據(jù)庫原理設(shè)計與應(yīng)用模擬題+參考答案
- 修路租用土地合同范例
- 下鄉(xiāng)支教社會實踐報告
- 醫(yī)療訂購合同范本
- 一年級語文下冊識字教案
- 反擔保合同范本2
- 《產(chǎn)業(yè)轉(zhuǎn)移》課件:機遇與挑戰(zhàn)
- 三好學(xué)生競選12
- 2024-2025學(xué)年六年級上學(xué)期數(shù)學(xué)第三單元3.1-搭積木比賽(教案)
- DeepSeek從入門到精通
- 人工智能賦能職業(yè)教育高質(zhì)量發(fā)展研究
- 崗位職責心得體會(2篇)
- 機械設(shè)計基礎(chǔ) 課件 01機械設(shè)計概論
- GB/T 6822-2024船體防污防銹漆體系
- 全國第三屆職業(yè)技能大賽(智能網(wǎng)聯(lián)汽車裝調(diào)運維)選拔賽理論考試題庫(含答案)
- 電信網(wǎng)絡(luò)詐騙犯罪的特征、治理困境及對策建議
- 品質(zhì)培訓(xùn)提升員工質(zhì)量意識3
評論
0/150
提交評論