User Tools

Site Tools


pracro:praxisd

This is an old revision of the document!


Praxisd

Pracro must connect to praxisd in order to:

  • Upload journal data.
  • Retrieve journal data.
  • Get cave list.
  • Post cave information to a patient.
  • Get cave information from a patient.

Future uses include:

  • Calendar extracts for macro prefills.

libpraxisd

The praxisd interface library. Using curl. interface:

struct {
  char *data;
  size_t size;
} journal_t;
 
journal_t *getJournal(const char *patientid);
void freeJournal(journal_t *journal);

API

GET

Get Journal By CPR

/praxisd/1.0/journal/get_by_cpr

Parameters:

  • cpr the cpr number of the patient

Returns the journal plaintext in utf-8

Get Patient By CPR

/praxisd/1.0/patient/get_by_cpr

Parameters:

  • cpr the cpr number of the patient

Returns xml structure with patient data.
XML fields:

Example: curl localhost:10000/praxisd/1.0/patient/get_by_cpr?cpr=nnnnnnnnnn

<?xml version="1.0" encoding="UTF-8"?>
<praxisd version="1.0">
  <patient cpr="nnnnnnnnnn">
    <efternavn>XXXXXXXXXX</efternavn>
    <fornavne>XXXXXXXXXX</fornavne>
    <stilling></stilling>
    <gade></gade>
    <by>0</by>
    <telefonnumre></telefonnumre>
    <sikringsgr>9</sikringsgr>
    <amtsnr>070</amtsnr>
    <sygekontor>KNr. 0</sygekontor>
    <henvnr></henvnr>
    <frilinie1>0000097217</frilinie1>
    <frilinie2></frilinie2>
    <frilinie3></frilinie3>
    <frilinie4></frilinie4>
    <frilinie5></frilinie5>
    <sogeords>
      <sogeord sogenr="T:0028" sogedato="261109">      </sogeord>
      <sogeord sogenr="T:0029" sogedato="261109">      </sogeord>
      <sogeord sogenr="BL0014" sogedato="010710"> o.dxt</sogeord>
      <sogeord sogenr="BCGB00" sogedato="010710"> o.sin</sogeord>
      <sogeord sogenr="BCGB00" sogedato="010710"> o.dxt</sogeord>
      <sogeord sogenr="BL0001" sogedato="010710">      </sogeord>
      <sogeord sogenr="BL0001" sogedato="010710"> o.dxt</sogeord>
      <sogeord sogenr="BL0021" sogedato="061210"> o.u  </sogeord>
    </sogeords>
    <ydernr>          </ydernr>
    <created>201000</created>
    <donottouch>                    </donottouch>
    <visus> </visus>
    <labkort> </labkort>
    <medkort>*</medkort>
    <jlock> </jlock>
    <unknown1>130509</unknown1>
    <henvdato>      </henvdato>
    <aarhund>19</aarhund>
    <fakturadato>      </fakturadato>
    <fakturabelob>           </fakturabelob>
    <betaldato>      </betaldato>
    <betalbelob>           </betalbelob>
    <jdato>230311</jdato>
    <unknown250> </unknown250>
    <unknown251> </unknown251>
    <jtime>    </jtime>
  </patient>
</praxisd>

Get Diverse From Sogenr

/praxisd/1.0/diverse/get_all_by_sogenr

Get list of matching sogenr entries. Parameters:

  • sogenr the sogenr prefix to match in the search.

Returns xml structure with matching diverse entries
Prefix 'A' adresse:

<?xml version="1.0" encoding="UTF-8"?>
<praxisd version="1.0">
  <div_adresse sogenr="Annnn">
    <edi_adresse></edi_adresse>
    <navn>XXXXXX</navn>
    <att></att>
    <gade>XXXXXXX</gade>
    <by>XXXXXXXXX</by>
    <tlf>nnnnnnnn</tlf>
    <fax>nnnnnnnn</fax>
  </div_adresse>
   .
   .
   .
</praxisd>

Prefix 'B' behandling:

<?xml version="1.0" encoding="UTF-8"?>
<praxisd version="1.0">
  <div_behandling sogenr="Bnnnnn">
    <kode>XXXXX</kode>
    <behandling>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</behandling>
    <bemaerkning></bemaerkning>
    <udregning></udregning>
  </div_behandling>
   .
   .
   .
</praxisd>

Prefix 'C' cave:

<?xml version="1.0" encoding="UTF-8"?>
<praxisd version="1.0">
  <div_cave sogenr="Cnnnnn">
    <cave>AZOPT</cave>
    <bemaerkning1></bemaerkning1>
    <bemaerkning2></bemaerkning2>
    <bemaerkning3></bemaerkning3>
  </div_cave>
   .
   .
   .
</praxisd>

Prefix 'D' diagnose:

<?xml version="1.0" encoding="UTF-8"?>
<praxisd version="1.0">
  <div_diagnose sogenr="Dnnnnn">
    <kode>H</kode>
    <diagnose>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</diagnose>
    <bemaerkning></bemaerkning>
  </div_diagnose>
   .
   .
   .
</praxisd>

Prefix 'E' ?????? FIXME

Prefix 'F' frase:

<?xml version="1.0" encoding="UTF-8"?>
<praxisd version="1.0">
  <div_frase sogenr="Fnnnnn">
    <frase1>Shaffer</frase1>
    <frase2></frase2>
    <frase3></frase3>
    <frase4></frase4>
  </div_frase>
   .
   .
   .
</praxisd>

Prefix 'G' grafik:

<?xml version="1.0" encoding="UTF-8"?>
<praxisd version="1.0">
  <div_grafik sogenr="Gnnnnn">
    <navn>ENO s1</navn>
    <bemaerkning>Har du set strudsen ENO ?</bemaerkning>
  </div_grafik>
   .
   .
   .
</praxisd>

Prefix 'H' ?????? FIXME

Prefix 'I' indholdsstof:

<?xml version="1.0" encoding="UTF-8"?>
<praxisd version="1.0">
  <div_indholdsstof sogenr="Innnn">
    <indholdsstof>XXXXXXX</indholdsstof>
    <form1></form1>
    <form2></form2>
    <form3></form3>
    <form4></form4>
  </div_indholdsstof>
   .
   .
   .
</praxisd>

Prefix 'K' klage:

<?xml version="1.0" encoding="UTF-8"?>
<praxisd version="1.0">
  <div_klage sogenr="Knnnnnn">
    <kode></kode>
    <klage>XXXXXXXXXXXXXXXX</klage>
    <bemaerkning></bemaerkning>
  </div_klage>
   .
   .
   .
</praxisd>

Prefix 'L' ?????? FIXME

Prefix 'M' ?????? FIXME

Prefix 'N' ?????? FIXME

Prefix 'O' oversigt:

<?xml version="1.0" encoding="UTF-8"?>
<praxisd version="1.0">
  <div_oversigt sogenr="Onnnnn">
    <navn>XXXXXXXX</navn>
    <bemaerkning>XXXXXXXXXXXXXXXXX</bemaerkning>
  </div_oversigt>
   .
   .
   .
</praxisd>

Prefix 'P' postnummer:

<?xml version="1.0" encoding="UTF-8"?>
<praxisd version="1.0">
  <div_postnummer sogenr="Pnnnnn">
    <postnummer>nnnn</postnummer>
    <by_gade>XXXXX</by_gade>
    <kbh>XXXXXXX</kbh>
    <amtsnr>nnn</amtsnr>
    <kommunenr>nnn</kommunenr>
    <regionnavn></regionnavn>
    <kommunenavn></kommunenavn>
  </div_postnummer>
   .
   .
   .
</praxisd>

Prefix 'R' ?????? FIXME

Prefix 'T' type:

<?xml version="1.0" encoding="UTF-8"?>
<praxisd version="1.0">
  <div_type sogenr="Tnnnnnn">
    <type>XXXXXXXXXXX</type>
    <bemaerkning1></bemaerkning1>
    <bemaerkning2></bemaerkning2>
    <bemaerkning3></bemaerkning3>
    <recept></recept>
  </div_type>
   .
   .
   .
</praxisd>

Prefix 'U' undersoegelse:

<?xml version="1.0" encoding="UTF-8"?>
<praxisd version="1.0">
  <div_undersoegelse sogenr="Unnnnn">
    <kode></kode>
    <undersoegelse>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</undersoegelse>
    <bemaerkning></bemaerkning>
    <udregning></udregning>
  </div_undersoegelse>
   .
   .
   .
</praxisd>

Prefix 'V' ?????? FIXME

Prefix 'W' ?????? FIXME

Prefix 'Y' ydelse:

<?xml version="1.0" encoding="UTF-8"?>
<praxisd version="1.0">
  <div_ydelse sogenr="Ynnnnn">
    <nr></nr>
    <navn></navn>
    <gr1>0.000000</gr1>
    <gr2>0.000000</gr2>
    <privat>0</privat>
    <journal1></journal1>
    <journal2></journal2>
    <moms></moms>
  </div_ydelse>
   .
   .
   .
</praxisd>

Get Aftale All by Date and Calendar

/praxisd/1.0/aftale/get_all_by_date_and_calendar

Parameters:

  • calendar The calendar number to show [1-N].
  • year the year to show.
  • month the month to show.
  • day the day to show.

Returns xml structure with matching calendar entries

<?xml version="1.0" encoding="UTF-8"?>
<praxisd version="1.0">
  <aftale date="2011-03-16 01:00:00" calendar="17">
    <cpr>nnnnnnnnnnn</cpr>
    <cref></cref>
    <cmrk>X</cmrk>
    <ctxt>XXXXXXXXXXXXXXXXXX</ctxt>
    <cres></cres>
  </aftale>
   .
   .
   .
</praxisd>

Get Aftale All by CPR

/praxisd/1.0/aftale/get_all_by_cpr

Parameters:

  • cpr the patient to make calendar lookups for.

Returns xml structure with matching calendar entries

<?xml version="1.0" encoding="UTF-8"?>
<praxisd version="1.0">
  <aftale date="2011-04-07 13:50:00" calendar="12">
    <cpr>nnnnnnnnnn</cpr>
    <cref>msh</cref>
    <cmrk>x</cmrk>
    <ctxt>XXXXXXXXXXXXXXXXXXXXXXX</ctxt>
    <cres>EL</cres>
  </aftale>
   .
   .
   .
</praxisd>

Authenticate

/praxisd/1.0/user/authenticate

Validate a username and password against the pcpraxis user db. NOTE: this is not needed in order to communicate with the server. Not event PUTs. Parameters:

  • user the username
  • pass the password

Returns http errorcode 401 (unauthorized) if not successful 200 (OK) otherwise.

Get Name by UserID

/praxisd/1.0/user/get_name_by_id

Parameters:

  • user the username to look up.

Returns the plaintext utf-8 name connected with the userid.

Get All Docmenu by CPR

/praxisd/1.0/dokmenu/get_all_by_cpr

Shows the complete docmenu for a given patient id. Parameters:

  • cpr the patient id.

Returns xml structure with docmenu entries

<?xml version="1.0" encoding="UTF-8"?>
<praxisd version="1.0">
  <dokmenu cpr="nnnnnnnnn">
    <group>XXXXXXXXXXXX</group>
    <subject>XXXXXXXXXXXXXXXXXXXXXX</subject>
    <filename filesize="1371" date="2010-05-05 09:25:10">XXXXXXXX</filename>
  </dokmenu>
   .
   .
   .
</praxisd>

Get Docmenu by Name and CPR

/praxisd/1.0/dokmenu/get_by_cpr_and_name

Fetch contents of a file in the docmenu by using its filename. Parameters:

  • cpr the patient id.
  • name the name of the file to be fetched.

Returns the raw unformatted contents of the file.

POST

Add To Journal

/praxisd/1.0/journal/add

Add text to the journal.

<praxisd version="1.0">
  <journal cpr="1505050505" [replace="true|false"] [header="true|false"]>Text to add properly formatted</journal>
</praxisd>

Update Patient

/* /praxisd/1.0/patient/update */

FIXME Not yet implemented.

Add Sogeord to Patient

/praxisd/1.0/patient/add_sogeord
<praxisd version="1.0">
  <addsogeord cpr="nnnnnnnnnn">
    <sogeord sogenr="XYZUVW" date="2009-08-17">sogtxt</sogeord>
     .
     .
     .
  </addsogeord>
</praxisd>

Update Aftale

/praxisd/1.0/aftale/update

In the xml both the old and the new contents must be present in order for the server to be able to verify that no changes were made since the original was last fetched.

<praxisd version="1.0">
  <aftale date="2009-08-17 11:12:00" calendar="1" original="true">
    <cpr>nnnnnnnnnnn</cpr>
    <cref>Blabla!</cref>
    <cmrk>x</cmrk>
    <ctxt>Text and bla</ctxt>
    <cres>More bla</cres>
  </aftale>
  <aftale date="2009-09-20 10:10:00" calendar="2" [original="false"]>
    <cpr>nnnnnnnnnnn</cpr>
    <cref>Newbla!</cref>
    <cmrk>y</cmrk>
    <ctxt>New Text and bla</ctxt>
    <cres>New bla</cres>
  </aftale>
</praxisd>

Add Aftale

/praxisd/1.0/aftale/add
<praxisd version="1.0">
  <aftale date="2009-09-20 10:10:00" calendar="2">
    <cpr>nnnnnnnnnn</cpr>
    <cref>Newbla!</cref>
    <cmrk>y</cmrk>
    <ctxt>New Text and bla</ctxt>
    <cres>New bla</cres>
  </aftale>
</praxisd>

Delete Aftale

/praxisd/1.0/aftale/delete

Delete the matching calendar entry.

<praxisd version="1.0">
  <aftale date="2009-09-20 10:10:00" calendar="2"/>
</praxisd>

Add File to Docmenu

/praxisd/1.0/dokmenu/add

Upload file to docmenu.

<praxisd version="1.0">
  <dokmenu cpr="nnnnnnnnnn">
    <group>Group text bla</group>
    <subject>Subject text bla</subject>
    <file [name="88888888.333" | extension="333"] [date="YYYY-MM-DD HH:MM:SS] [base64="true|false"]>file content</file>
  </dokmenu>
</praxisd>

Delete File from Docmenu

/praxisd/1.0/dokmenu/delete

Delete a file from the docmenu.

<praxisd version="1.0">
  <dokmenu cpr="nnnnnnnnnn" name="filename.ext"/>
</praxisd>
pracro/praxisd.1303132050.txt.gz · Last modified: 2011/04/18 15:07 by deva