Documente Academic
Documente Profesional
Documente Cultură
Specificaii de interfaare cu SIUI+PE+CEAS pentru aplicaiile de raportare ale furnizorilor de servicii medicale i farmaceutice Metode de obinere a numrului de asigurat (CID)
Specificaii de interfaare cu SIUI+PE+CEAS pentru aplicaiile de raportare ale furnizorilor de servicii medicale i farmaceutice Metode de obinere a numrului de asigurat (CID) Anexa 001
CUPRINS
1. INTRODUCERE ......................................................................................................................................................3 1.1. Ce este CID-ul? ..........................................................................................................................................3 2. BIBLIOTECI DE GENERARE A CID-ULUI ....................................................................................................................4 2.1. Biblioteca Cnas.Siui.CidGen.dll (C#, .NET) ..............................................................................................4 2.1.1. Utilizarea bibliotecii din .NET/C# ......................................................................................................5 2.1.2. Utilizarea bibliotecii din Excel prin OLE/COM ...................................................................................5 2.2. Biblioteca CidGen32.dll (C++) ...................................................................................................................6 2.2.1. Utilizarea bibliotecii din .NET/C# ......................................................................................................7 2.2.2. Utilizarea bibliotecii din C++ ..............................................................................................................7 2.3. Biblioteca CidGen64.dll (C++) ...................................................................................................................8 2.4. Drepturi i limitri .....................................................................................................................................8 3. METODE ONLINE DE OBINERE A CID-ULUI .............................................................................................................9 3.1. Metoda Web getInsured expus de SiuiInsuredWS ...................................................................................9 3.1.1. Serviciul pentru verificarea calitii de asigurat a persoanelor nregistrate n sistem .................9 3.1.2. Structura fiierului de rspuns la verificare a calitii de asigurat............................................... 10
Pagina 2 din 11
Specificaii de interfaare cu SIUI+PE+CEAS pentru aplicaiile de raportare ale furnizorilor de servicii medicale i farmaceutice Metode de obinere a numrului de asigurat (CID) Anexa 001
1. INTRODUCERE
Acest document este anex la "Specificaia de interfaare cu SIUI+PE+CEAS" i descrie din punct de vedere tehnic modalitile de obinere a numrului de asigurat (CID) utilizat de aplicaiile de raportare care interacioneaz cu Sistemul Informatic Unic Integrat (SIUI) al Casei Naionale de Asigurri de Sntate (CNAS), extins cu Prescripia Electronic i Cardul Electronic de Asigurri de Sntate. NOT Acest document este destinat productorilor de aplicaii informatice n domeniul medical i al asigurrilor de sntate, facilitnd accesul acestora la informaiile tehnice necesare actualizrii aplicaiilor existente sau dezvoltrii de aplicaii noi n vederea raportrii electronice ctre SIUI+PE+CEAS a serviciilor prestate de furnizorii de servicii medicale i farmaceutice.
Pagina 3 din 11
Specificaii de interfaare cu SIUI+PE+CEAS pentru aplicaiile de raportare ale furnizorilor de servicii medicale i farmaceutice Metode de obinere a numrului de asigurat (CID) Anexa 001
Una dintre limitrile majore ale ambelor variante este dependena de sistemul de operare Windows, prin utilizarea bibliotecilor criptografice expuse de acesta. Pentru a veni n ntmpinarea acestei limitri, sistemul SIUI permite obinerea CID-ului corespunztor unui CNP prin interogarea sistemului utiliznd mecanismele programatice expuse deja i detaliate n Specificaiile de Interfaare. Prin intermediul acestei metode CID-ul poate fi obinut din orice aplicaie, dezvoltat, instalat i utilizat pe orice platform informatic, prin intermediul serviciilor Web.
Biblioteca necesit pentru utilizare existena Microsoft .NET Framework 2.0 (sau o versiune superioar) pe staia de lucru unde este instalat aplicaia de raportare, ceea ce implic faptul c poate fi utilizat pe orice sistem de operare Windows ncepnd cu Windows XP (cu SP3) i Windows Server 2013 (cu SP1), inclusiv Windows Vista i Windows 7.
Pagina 4 din 11
Specificaii de interfaare cu SIUI+PE+CEAS pentru aplicaiile de raportare ale furnizorilor de servicii medicale i farmaceutice Metode de obinere a numrului de asigurat (CID) Anexa 001
Prin modul n care aceast bibliotec a fost mpachetat pentru distribuie exist o restricie cu privire la utilizarea acesteia pe sisteme cu Microsoft .NET Framework 4.5, i ne referim n mod special la Windows 8, care vine preinstalat cu .NET Framework 4.5. Aceast bibliotec se gsete n arhiva anexat prezentului document cu numele CidGen.NET.zip i este nsoit de cteva exemple de utilizare, prezentate n continuare. 2.1.1. Utilizarea bibliotecii din .NET/C# Exemplul de mai jos prezint o modalitate simpl de a afia ntr-o caset de text valaorea CID-ului pentru un CNP introdus ntr-o alt caset de text.
using Cnas.Siui.CidGen; // preluare CNP string cnp =textCnp.Text.Trim(); // generare i afiare CID textCid.Text = CryptoHash.GetCidHash( cnp );
Exemplu poate fi consultat sub form de cod surs C# n arhiva anexat la prezentul document, cu numele SiuiCidGen-src.zip, care conine o aplicaie simpl (Cnp2Cid.exe) care permite obinerea CID-ului dintr-un CNP care este introdus de la tastatur. 2.1.2. Utilizarea bibliotecii din Excel prin OLE/COM Exemplul de mai jos prezint o modalitate simpl de a utiliza biblioteca n Microsoft Excel. nainte utilizare trebuie s v asigurai c exist n referine biblioteca cu numele "CNAS-SIUI - Generator CID", n caz contract urmai instruciunile de mai jos.
Public Function GetCid(CNP As String) As String Dim cidGen As New Cnas_Siui_CidGen.Generator On Error GoTo HELL GetCid = cidGen.GetCidFromCnp(CNP) Exit Function HELL: MsgBox Error, vbExclamation End Function
Pentru utilizarea funciei de mai jos, se editeaz de exemplu celula B1 din Excel i se introduce formula =GetCid(A1), care va prelua valoarea CNP-ului din celula A1 i va afia CID-ul corespunztor. Exemplu poate fi consultat sub form de cod surs VBA n arhiva anexat la prezentul document, cu numele SiuiCidGen-xls.zip, care conine un fier Microsoft Excel cu macrouri (CidGen.xlsm) care prezint posibilitatea de afiare a dou coloane, una cu CNP-uri i cealalt cu CID-uri, n care valorile din a doua coloan sunt calculate n timp-real pe baza valorilor din prima coloan. Arhiva conine i cteva exemple ale modului de nregistrare/deznregistrare ale bibiotecii pentru utilizarea prin OLE/COM din programele compatibile, prezentate i n continuare. nainte de utilizare, dezarhivati fiierele ntr-un director accesibil tuturor utilizatorilor i aplicaiilor care vor utiliza exemplul. Lansai cmd.exe cu drepturi de administrator,
Versiunea 1.0 din 18.02.2013 Pagina 5 din 11
Specificaii de interfaare cu SIUI+PE+CEAS pentru aplicaiile de raportare ale furnizorilor de servicii medicale i farmaceutice Metode de obinere a numrului de asigurat (CID) Anexa 001
schimbai calea curent ctre cea unde ai dezarhivat fiierele, iar apoi rulai comanda de mai jos: (Microsoft .NET Framework 2.0 trebuie s fie instalat pe staia de lucru !)
> C:\Windows\Microsoft.NET\Framework\v2.0.50727\regasm.exe Cnas.Siui.CidGen.dll /tlb /codebase
Dup execuia acestei comenzi un fiier cu numele Cnas.Siui.CidGen.tlb va aprea lng Cnas.Siui.CidGen.dll, reprezentnd varianta accesibil prin OLE/COM a bibliotecii .NET.
Pe de alt parte, pentru utilizarea direct din C++, biblioteca expune o clas denumit CidGen declarat n namespace-ul CnasSiui care expune la rndul ei o metod denumit GetCid, prezentat n continuare ntr-un extract din fiierul header care o definete:
using namespace std; namespace CnasSiui { //-------------------------------------------// export class declaration for usage from C++ class __declspec(dllexport) CidGen { public: // Gets the CID from PID static std::string GetCid( std::string pid ); }; }
Aceast bibliotec se gsete n arhiva anexat prezentului document cu numele CidGen32.zip, nsoit de fiierele de referin pentru Microsoft Visual C++ Runtime corespunztoare versiunii pe 32 de bii, care trebuie distribuite mpreun cu biblioteca. Prezentm n continuare cteva exemple de utilizare.
Pagina 6 din 11
Specificaii de interfaare cu SIUI+PE+CEAS pentru aplicaiile de raportare ale furnizorilor de servicii medicale i farmaceutice Metode de obinere a numrului de asigurat (CID) Anexa 001
2.2.1. Utilizarea bibliotecii din .NET/C# Biblioteca C++ poate fi utilizat n .NET/C# ntr-un mod asemntor versiunii anterioare, prin simpla declarare a unei clase statice wrapper peste funcia expus de biblioteca C++, astfel:
public static class CidGen { [DllImport( "CidGen32.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl )] [return: MarshalAs( UnmanagedType.Bool )] private static extern bool GetCid( [MarshalAs( UnmanagedType.LPStr )] string pid, [MarshalAs( UnmanagedType.LPStr )] StringBuilder cid ); public static string GetCidHash ( string cnp ) { var cid = new StringBuilder(); return GetCid( cnp, cid ) ? cid.ToString() : null; } }
n acest fel putem implementa urmtoarea secven de cod, foarte asemntoare cu cea din primul exemplu.
// preluare CNP string cnp =textCnp.Text.Trim(); // generare i afiare CID textCid.Text = CidGen.GetCidHash( cnp );
2.2.2. Utilizarea bibliotecii din C++ Pentru utilizarea bibliotecii C++ direct dintr-o alt aplicaie dezvoltat n C++, propunem urmtorul exemplu de cod:
/////////////////////// // C++ style usage #include "CidGen.h" #include <string> // declare pid and read from console std::string pid = ""; std::cout << "Enter CNP: "; getline( cin, pid ); // compute cid and output to console std::string cid = CnasSiui::CidGen::GetCid( pid ); std::cout << "CID ( " << pid << " ) = " << cid ;
Pagina 7 din 11
Specificaii de interfaare cu SIUI+PE+CEAS pentru aplicaiile de raportare ale furnizorilor de servicii medicale i farmaceutice Metode de obinere a numrului de asigurat (CID) Anexa 001
Pagina 8 din 11
Specificaii de interfaare cu SIUI+PE+CEAS pentru aplicaiile de raportare ale furnizorilor de servicii medicale i farmaceutice Metode de obinere a numrului de asigurat (CID) Anexa 001
Metoda ntoarce ca rspuns un ir de caractere reprezentnd coninutul unui fiier n format XML care conine urmtoarele informaii: Un cod numeric de rspuns indicnd dac beneficiarul este asigurat sau nu, dac figureaz ca decedat n sistem, dac nu este nregistrat n sistem. CNP-ul pentru care s-a realizat cererea de verificare, nsoit de CID-ul corespunztor acestuia.
Pagina 9 din 11
Specificaii de interfaare cu SIUI+PE+CEAS pentru aplicaiile de raportare ale furnizorilor de servicii medicale i farmaceutice Metode de obinere a numrului de asigurat (CID) Anexa 001
Lista categoriilor de asigurare valabile la data interogrii Lista strilor de asigurare (pentru prescriere) valabile la data interogrii
Observaie: n cazul unei erori ntlnite n sistem la procesarea cererii se va ntoarce un cod numeric de rspuns (-1) precum i o descriere a erorii. Schema de validare pentru fiierul de rspuns este detaliat n seciunea urmtoare. Aplicaia de raportare trebuie s proceseze fiierul de rspuns i s afieze un mesaj sugestiv pentru utilizator cu privire la starea de asigurat a persoanei respective. Dac este cazul aplicaia va pre-completa cmpurile corespunztoare categoriei de asigurat. Este de preferat ca aplicaia de raportare s realizeze validarea de corectitudine a CNPului, algoritmul fiind arhicunoscut, pentru a nu suprancrca sistemul cu cereri inutile. Un exemplu tipic de algoritm pentru verificarea categoriei de asigurat este:
Utilizatorul introduce CNP-ului unui pacient sau selecteaz un pacient dintr-o list derulant, n vederea nregistrrii unui serviciu medical. Aplicaia valideaz corectitudinea CNP-ului: - Dac CNP-ul este incorect se afieaz un mesaj de avertizare. - Altfel se continu verificarea online: Aplicaia apeleaz metoda getInsured folosind CNP-ul respectiv i data interogrii ca parametri. Dac SIUI ntoarce un ir de caractere ca rspuns, aplicaia l salveaz ntr-un fiier XML: - Se valideaz fiierul XML cu schema XSD corespunztoare. - Dac fiierul este valid atunci: - Se parcurge fiierul i se extrage valoarea CID-ului. - Altfel se afieaz mesaj de eroare "Fiier de rspuns invalid". Altfel se afieaz un mesaj de eroare de comunicaie.
NOT Recomandm realizarea interogrilor de obinere a CID-ului i de consultare a calitii de asigurat dintr-un singur apel ctre SIUI. 3.1.2. Structura fiierului de rspuns la verificare a calitii de asigurat
Nume schem Namespace Nume element Descriere element Nume element Descriere element Nume atribut pid cid GetInsuredResponse.xsd http://www.cnas.ro/siui/2.0 insuredResponse insured Descriere atribut Codul numeric personal al pacientului (CNP) Numrul de asigurat al pacientului (CID) Nr apariii: minim 1, maxim 1 Nr apariii: minim 1, maxim 1 Obligatoriu Tip de date Constrngeri Nu Nu pidType cidType -
state
-1-Eroare 0-Inexistent Da xs:short 1-Asigurat 2-Neasigurat 3-Decedat Nr apariii: minim 0, maxim 1 Nr apariii: minim 0, maxim nelimitat
Pagina 10 din 11
Specificaii de interfaare cu SIUI+PE+CEAS pentru aplicaiile de raportare ale furnizorilor de servicii medicale i farmaceutice Metode de obinere a numrului de asigurat (CID) Anexa 001
Descriere element Nume atribut code validFrom validTo Nume element Descriere element Nume element Descriere element Nume atribut code validFrom validTo Nume tip simplu pidType
Categoria pacientului Descriere atribut Obligatoriu Tip de date Constrngeri Codul categoriei de asigurat (valoare Da string din nomenclatorul de categorii) Data de nceput a valabilitii Nu date Data de sfrit a valabilitii Nu date Nr apariii: minim 0, maxim 1 states Lista de strilor de asigurare ale persoanei (valori folosite la reete) Nr apariii: minim 0, maxim nelimitat state Starea de asigurare a persoanei Descriere atribut Obligatoriu Tip de date Constrngeri Codul strii de asigurat (valoarea Da string codului din nomenclatorul de stri) Data de nceput a valabilitii Nu date Data de sfrit a valabilitii Nu date Descriere tip simplu Tipul de date folosit pentru CNP Tip de date string Constrangeri Lungime min. 13 Lungime max. 13 Patern [0-9]{13} Constrangeri Lungime min. 20 Lungime max. 20 Patern [0-9]{20}
Pagina 11 din 11