diff --git a/Dokumentace/2025-04-24/WSDL_XSD/3DC_ZALOZNI_CENTRUM/CUERLekarnikService.wsdl b/Dokumentace/2025-04-24/WSDL_XSD/3DC_ZALOZNI_CENTRUM/CUERLekarnikService.wsdl new file mode 100644 index 0000000..8bd4802 --- /dev/null +++ b/Dokumentace/2025-04-24/WSDL_XSD/3DC_ZALOZNI_CENTRUM/CUERLekarnikService.wsdl @@ -0,0 +1,793 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Dokumentace/2025-04-24/WSDL_XSD/ENDPOINT_CUER/CommonSchema.xsd b/Dokumentace/2025-04-24/WSDL_XSD/ENDPOINT_CUER/CommonSchema.xsd new file mode 100644 index 0000000..f534cf9 --- /dev/null +++ b/Dokumentace/2025-04-24/WSDL_XSD/ENDPOINT_CUER/CommonSchema.xsd @@ -0,0 +1,1353 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Dokumentace/2025-04-24/WSDL_XSD/ENDPOINT_CUER/CuerWebService.wsdl b/Dokumentace/2025-04-24/WSDL_XSD/ENDPOINT_CUER/CuerWebService.wsdl new file mode 100644 index 0000000..9c23804 --- /dev/null +++ b/Dokumentace/2025-04-24/WSDL_XSD/ENDPOINT_CUER/CuerWebService.wsdl @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Dokumentace/2025-04-24/WSDL_XSD/ENDPOINT_CUER/cuer.xsd b/Dokumentace/2025-04-24/WSDL_XSD/ENDPOINT_CUER/cuer.xsd new file mode 100644 index 0000000..27ede5e --- /dev/null +++ b/Dokumentace/2025-04-24/WSDL_XSD/ENDPOINT_CUER/cuer.xsd @@ -0,0 +1,1582 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Dokumentace/2025-04-24/WSDL_XSD/ENDPOINT_CUER/schema2.xsd b/Dokumentace/2025-04-24/WSDL_XSD/ENDPOINT_CUER/schema2.xsd new file mode 100644 index 0000000..6a33abc --- /dev/null +++ b/Dokumentace/2025-04-24/WSDL_XSD/ENDPOINT_CUER/schema2.xsd @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Dokumentace/2025-04-24/WSDL_XSD/NEPRIORITNI_WEBOVE_SLUZBY/CUERLekarService.wsdl b/Dokumentace/2025-04-24/WSDL_XSD/NEPRIORITNI_WEBOVE_SLUZBY/CUERLekarService.wsdl new file mode 100644 index 0000000..732a25d --- /dev/null +++ b/Dokumentace/2025-04-24/WSDL_XSD/NEPRIORITNI_WEBOVE_SLUZBY/CUERLekarService.wsdl @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Dokumentace/2025-04-24/WSDL_XSD/NEPRIORITNI_WEBOVE_SLUZBY/CUERLekarnikService.wsdl b/Dokumentace/2025-04-24/WSDL_XSD/NEPRIORITNI_WEBOVE_SLUZBY/CUERLekarnikService.wsdl new file mode 100644 index 0000000..ef7ca02 --- /dev/null +++ b/Dokumentace/2025-04-24/WSDL_XSD/NEPRIORITNI_WEBOVE_SLUZBY/CUERLekarnikService.wsdl @@ -0,0 +1,248 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Dokumentace/2025-04-24/WSDL_XSD/NEPRIORITNI_WEBOVE_SLUZBY/Cuer2Schema.xsd b/Dokumentace/2025-04-24/WSDL_XSD/NEPRIORITNI_WEBOVE_SLUZBY/Cuer2Schema.xsd new file mode 100644 index 0000000..9ebe028 --- /dev/null +++ b/Dokumentace/2025-04-24/WSDL_XSD/NEPRIORITNI_WEBOVE_SLUZBY/Cuer2Schema.xsd @@ -0,0 +1,1075 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Dokumentace/2025-04-24/WSDL_XSD/NEPRIORITNI_WEBOVE_SLUZBY/CuerSchema.xsd b/Dokumentace/2025-04-24/WSDL_XSD/NEPRIORITNI_WEBOVE_SLUZBY/CuerSchema.xsd new file mode 100644 index 0000000..3f552f1 --- /dev/null +++ b/Dokumentace/2025-04-24/WSDL_XSD/NEPRIORITNI_WEBOVE_SLUZBY/CuerSchema.xsd @@ -0,0 +1,3087 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Dokumentace/2025-04-24/WSDL_XSD/NEPRIORITNI_WEBOVE_SLUZBY/schema2.xsd b/Dokumentace/2025-04-24/WSDL_XSD/NEPRIORITNI_WEBOVE_SLUZBY/schema2.xsd new file mode 100644 index 0000000..6a33abc --- /dev/null +++ b/Dokumentace/2025-04-24/WSDL_XSD/NEPRIORITNI_WEBOVE_SLUZBY/schema2.xsd @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Dokumentace/2025-04-24/WSDL_XSD/PRIORITNI_WEBOVE_SLUZBY/CUERLekar.wsdl b/Dokumentace/2025-04-24/WSDL_XSD/PRIORITNI_WEBOVE_SLUZBY/CUERLekar.wsdl new file mode 100644 index 0000000..a2b0d61 --- /dev/null +++ b/Dokumentace/2025-04-24/WSDL_XSD/PRIORITNI_WEBOVE_SLUZBY/CUERLekar.wsdl @@ -0,0 +1,526 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Dokumentace/2025-04-24/WSDL_XSD/PRIORITNI_WEBOVE_SLUZBY/CUERLekarnik.wsdl b/Dokumentace/2025-04-24/WSDL_XSD/PRIORITNI_WEBOVE_SLUZBY/CUERLekarnik.wsdl new file mode 100644 index 0000000..570355c --- /dev/null +++ b/Dokumentace/2025-04-24/WSDL_XSD/PRIORITNI_WEBOVE_SLUZBY/CUERLekarnik.wsdl @@ -0,0 +1,526 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Dokumentace/2025-04-24/WSDL_XSD/PRIORITNI_WEBOVE_SLUZBY/CUERPracovnikZP.wsdl b/Dokumentace/2025-04-24/WSDL_XSD/PRIORITNI_WEBOVE_SLUZBY/CUERPracovnikZP.wsdl new file mode 100644 index 0000000..2d0059c --- /dev/null +++ b/Dokumentace/2025-04-24/WSDL_XSD/PRIORITNI_WEBOVE_SLUZBY/CUERPracovnikZP.wsdl @@ -0,0 +1,442 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Dokumentace/2025-04-24/WSDL_XSD/PRIORITNI_WEBOVE_SLUZBY/RLPOLekar.wsdl b/Dokumentace/2025-04-24/WSDL_XSD/PRIORITNI_WEBOVE_SLUZBY/RLPOLekar.wsdl new file mode 100644 index 0000000..3d7e924 --- /dev/null +++ b/Dokumentace/2025-04-24/WSDL_XSD/PRIORITNI_WEBOVE_SLUZBY/RLPOLekar.wsdl @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Dokumentace/2025-04-24/WSDL_XSD/PRIORITNI_WEBOVE_SLUZBY/RLPOLekarnik.wsdl b/Dokumentace/2025-04-24/WSDL_XSD/PRIORITNI_WEBOVE_SLUZBY/RLPOLekarnik.wsdl new file mode 100644 index 0000000..843ba38 --- /dev/null +++ b/Dokumentace/2025-04-24/WSDL_XSD/PRIORITNI_WEBOVE_SLUZBY/RLPOLekarnik.wsdl @@ -0,0 +1,330 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Dokumentace/2025-04-24/WSDL_XSD/PRIORITNI_WEBOVE_SLUZBY/schema1.xsd b/Dokumentace/2025-04-24/WSDL_XSD/PRIORITNI_WEBOVE_SLUZBY/schema1.xsd new file mode 100644 index 0000000..2bd68ce --- /dev/null +++ b/Dokumentace/2025-04-24/WSDL_XSD/PRIORITNI_WEBOVE_SLUZBY/schema1.xsd @@ -0,0 +1,3203 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Dokumentace/2025-04-24/WSDL_XSD/PRIORITNI_WEBOVE_SLUZBY/schema2.xsd b/Dokumentace/2025-04-24/WSDL_XSD/PRIORITNI_WEBOVE_SLUZBY/schema2.xsd new file mode 100644 index 0000000..ab3bb03 --- /dev/null +++ b/Dokumentace/2025-04-24/WSDL_XSD/PRIORITNI_WEBOVE_SLUZBY/schema2.xsd @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Dokumentace/2025-04-24/eRecept_zapocitatelne_doplatky_dokumentace_pro_vyvojare_v7.docx b/Dokumentace/2025-04-24/eRecept_zapocitatelne_doplatky_dokumentace_pro_vyvojare_v7.docx new file mode 100644 index 0000000..c1a042c Binary files /dev/null and b/Dokumentace/2025-04-24/eRecept_zapocitatelne_doplatky_dokumentace_pro_vyvojare_v7.docx differ diff --git a/LékovýZáznamWithClaude/02LekovyZaznam.py b/LékovýZáznamWithClaude/02LekovyZaznam.py index 674ab76..9564961 100644 --- a/LékovýZáznamWithClaude/02LekovyZaznam.py +++ b/LékovýZáznamWithClaude/02LekovyZaznam.py @@ -15,12 +15,7 @@ UZIVATEL = "E08C89C6-2B1A-4EBA-8ED9-4E3E63618379" PRACOVISTE = "00214235367" ENDPOINTS = [ - "https://lekar-soap.erecept.sukl.cz/erp/Lekar", - "https://lekar-soap.erecept.sukl.cz/erp/cuer/Lekar", - "https://lekar-soap.erecept.sukl.cz/cuer/NacistLekovyZaznam", - "https://lekar-soap.erecept.sukl.cz/erp/NacistLekovyZaznam", - "https://lekar-soap.erecept.sukl.cz/LekovyZaznam", - "https://cuer-soap.erecept.sukl.cz/cuer/Lekar", + "https://lekar-soap.erecept.sukl.cz/cuer/Lekar2", ] # --- Pacient --- @@ -68,23 +63,12 @@ def nacist_lekovy_zaznam(): "User-Agent": "Medicus" } - # Zkusíme stáhnout WSDL ze serverů - wsdl_urls = [ - "https://lekar-soap.erecept.sukl.cz/cuer/Lekar?wsdl", - "https://cuer-soap.erecept.sukl.cz/?wsdl", - "https://cuer-soap.erecept.sukl.cz/?singleWsdl", - ] - for url in wsdl_urls: - print(f"\n--- WSDL: {url} ---") + for url in ENDPOINTS: + print(f"\n--- POST: {url} ---") try: - resp = sess.get(url, timeout=10) + resp = sess.post(url, data=soap_body.encode("utf-8"), headers=headers, timeout=15) print(f"HTTP {resp.status_code} | {len(resp.content)} bytů") - if resp.status_code == 200: - fname = url.replace("https://","").replace("/","_").replace("?","_") + ".xml" - with open(fname, "wb") as f: - f.write(resp.content) - print(f"Uloženo: {fname}") - print(resp.text[:1000]) + print(resp.text) except Exception as e: print(f"CHYBA: {e}") diff --git a/LékovýZáznamWithClaude/NacistCiselnikChyb.py b/LékovýZáznamWithClaude/NacistCiselnikChyb.py new file mode 100644 index 0000000..faf57e2 --- /dev/null +++ b/LékovýZáznamWithClaude/NacistCiselnikChyb.py @@ -0,0 +1,64 @@ +import uuid +import xml.dom.minidom +from datetime import datetime, timezone +from requests import Session +from requests_pkcs12 import Pkcs12Adapter + +PFX_FILE = r"C:\Users\vlado\PycharmProjects\Recepty\AMBSUKL214235369G_31DEC2024.pfx" +PFX_PASSWORD = "Vlado7309208104++" +API_USER = "e08c89c6-2b1a-4eba-8ed9-4e3e63618379" +API_PASS = "Buzalka@Vladimir2025" + +ENDPOINT = "https://lekar-soap.erecept.sukl.cz/cuer/Lekar" +NAMESPACE = "http://www.sukl.cz/erp/201704" + +def nacist_ciselnik_chyb(): + sess = Session() + sess.mount("https://", Pkcs12Adapter(pkcs12_filename=PFX_FILE, pkcs12_password=PFX_PASSWORD)) + sess.auth = (API_USER, API_PASS) + + id_zpravy = str(uuid.uuid4()) + odeslano = datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%S+00:00") + + soap_body = ( + '' + '' + '' + f'' + f'' + f'{id_zpravy}' + f'202501A' + f'{odeslano}' + f'MEDICUS_____' + f'' + f'' + '' + '' + ) + + headers = { + "Content-Type": 'text/xml; charset="UTF-8"', + "SOAPAction": '"NacistCiselnikChyb"', + "User-Agent": "Medicus" + } + + print(f"Volám: {ENDPOINT}") + resp = sess.post(ENDPOINT, data=soap_body.encode("utf-8"), headers=headers, timeout=15) + print(f"HTTP {resp.status_code} | {len(resp.content)} bytů\n") + + if resp.status_code == 200: + # Hezky formátovaný výpis + dom = xml.dom.minidom.parseString(resp.content) + pretty = dom.toprettyxml(indent=" ", encoding="utf-8").decode("utf-8") + print(pretty) + + # Uložit do souboru + fname = f"ciselnik_chyb_{id_zpravy[:8]}.xml" + with open(fname, "w", encoding="utf-8") as f: + f.write(pretty) + print(f"\nUloženo: {fname}") + else: + print(resp.text) + +if __name__ == "__main__": + nacist_ciselnik_chyb() diff --git a/LékovýZáznamWithClaude/NacistLekovyZaznam_DOKUMENTACE.md b/LékovýZáznamWithClaude/NacistLekovyZaznam_DOKUMENTACE.md new file mode 100644 index 0000000..4e861e5 --- /dev/null +++ b/LékovýZáznamWithClaude/NacistLekovyZaznam_DOKUMENTACE.md @@ -0,0 +1,353 @@ +# NacistLekovyZaznam — Funkční SOAP klient pro IS eRecept SÚKL + +## Status +**OVĚŘENO FUNKČNÍ** — 5. dubna 2026 +Odpověď serveru: `HTTP 200`, velikost: ~227 KB reálných dat +Schéma ověřeno proti: `Cuer2Schema.xsd` verze `202501A` (dokumentace SÚKL 2025-04-24) + +--- + +## Co tato operace dělá + +`NacistLekovyZaznam` je SOAP operace IS eRecept (SÚKL), která vrátí kompletní **lékový záznam pacienta** — tedy seznam všech předpisů a výdejů léků napříč všemi lékaři a lékárnami v ČR za zadané období. + +Typické použití: lékař si před konzultací zobrazí, co pacient aktuálně bere, co mu bylo předepsáno a vydáno v lékárně. + +--- + +## Klíčové informace (těžce dohledané) + +### Endpoint (produkce) +``` +https://lekar-soap.erecept.sukl.cz/cuer/Lekar2 +``` +> **Pozor:** Endpoint má na konci číslici `2` — tj. `/cuer/Lekar2`, nikoli `/cuer/Lekar`. +> Tato operace **není** dostupná na starším endpointu `/cuer/Lekar`. +> Poprvé zdokumentováno v: `eRecept_lekovy_zaznam_1v3.docx` (dokumentace SÚKL ze dne 2024-01-18). + +### Endpoint (testovací prostředí) +``` +https://lekar-soap.test-erecept.sukl.cz/cuer/Lekar2 +``` + +### SOAPAction +``` +"NacistLekovyZaznam" +``` + +### XML namespace +``` +http://www.sukl.cz/erp/201912 +``` +> Namespace pochází z prosince 2019 a **nemění se** ani v novějších verzích rozhraní. +> Verze rozhraní se předává v elementu `` uvnitř zprávy, ne změnou namespace. +> SÚKL zachovává zpětnou kompatibilitu — namespace zůstává `201912` i pro verze `202401A`, `202501A` atd. + +--- + +## Další operace dostupné na stejném endpointu `/cuer/Lekar2` + +Dle `CUERLekarService.wsdl` (2025-04-24) jsou na tomto endpointu celkem **4 operace**: + +| Operace | SOAPAction | Popis | +|---|---|---| +| `NacistLekovyZaznam` | `NacistLekovyZaznam` | ✅ lékový záznam pacienta | +| `OverDuplicity` | `OverDuplicity` | kontrola duplicitních předpisů | +| `ZjistitPoznamkyHvlp` | `ZjistitPoznamkyHvlp` | poznámky k HVLP přípravkům | +| `GetAppInfo` | `GetAppInfo` | info o verzi API | +| `AppPing` | `AppPing` | test spojení | + +--- + +## Autentizace (dvojitá) + +IS eRecept vyžaduje **dvě vrstvy** autentizace současně: + +### 1. Klientský certifikát (TLS mutual auth) +- Soubor: `AMBSUKL214235369G_31DEC2024.pfx` (certifikát lékaře vydaný SÚKL) +- Formát: PKCS#12 (`.pfx`) +- Knihovna: `requests-pkcs12` → `Pkcs12Adapter` +- Platnost certifikátu: do 31. 12. 2024 (při expiraci je nutné zažádat SÚKL o nový) + +### 2. HTTP Basic Auth +- Uživatel: UUID lékaře (přiděluje SÚKL, jednoznačný v celé ČR) +- Heslo: osobní heslo lékaře do portálu eRecept + +--- + +## Struktura SOAP dotazu + +```xml + + + + + + + + E08C89C6-2B1A-4EBA-8ED9-4E3E63618379 + 00214235367 + + 7 + 60 + + + + Buzalka + Vladimír + + 1973-09-20 + + + + + + + + + + dabda2ad-df61-41db-bd46-a969eced026b + 202501A + 2026-04-05T10:00:00+00:00 + MEDICUS_____ + + + + + +``` + +### Parametry dotazu (ověřeno proti Cuer2Schema.xsd verze 202501A) + +| Element | Povinný | Omezení | Poznámka | +|---|---|---|---| +| `Uzivatel` | ✅ ano | UUID formát | UUID lékaře přidělené SÚKL | +| `Pracoviste` | ✅ ano | — | IČP pracoviště lékaře | +| `PocetZnakuATC` | ✅ ano | **pouze 5 nebo 7** | enum — jiné hodnoty server odmítne | +| `PocetMesicu` | ❌ volitelný | max 99 | počet měsíců do minulosti | +| `Prijmeni` | ✅ ano | — | příjmení pacienta | +| `Jmena` | ✅ ano | — | jméno/jména pacienta | +| `DatumNarozeni` | ✅ ano | `YYYY-MM-DD` | datum narození pacienta | +| `Zastupce` | ❌ volitelný | — | pouze pro zastupujícího lékaře | +| `ID_Zpravy` | ✅ ano | UUID formát | nové UUID pro každý dotaz | +| `Verze` | ✅ ano | — | aktuálně `202501A` | +| `Odeslano` | ✅ ano | ISO 8601 | čas odeslání s časovou zónou | +| `SW_Klienta` | ✅ ano | přesně 12 znaků | doplnit mezerami zleva nebo zprava | + +--- + +## Struktura odpovědi (ověřeno proti Cuer2Schema.xsd verze 202501A) + +``` +NacistLekovyZaznamOdpoved +├── Doklad +│ ├── Pacient potvrzení identity pacienta +│ │ ├── Jmeno (Prijmeni, Jmena) volitelný +│ │ └── DatumNarozeni volitelný +│ │ +│ ├── PredepisujiciSeznam volitelný — lékaři kteří předepisovali +│ │ └── Predepisujici[] +│ │ ├── Lekar Kod (UUID) + Jmeno — volitelný +│ │ ├── ICZ 8 číslic — volitelný +│ │ ├── ICP 8 číslic — povinný +│ │ ├── PZS volitelný +│ │ │ ├── Nazev max 200 znaků +│ │ │ ├── Telefon max 20 znaků — volitelný +│ │ │ └── Adresa +│ │ └── Telefon max 20 znaků — volitelný +│ │ +│ ├── VydavajiciSeznam volitelný — lékárníci kteří vydávali +│ │ └── Vydavajici[] +│ │ ├── Lekarnik Kod (UUID) + Jmeno +│ │ └── PZS Nazev + Adresa +│ │ +│ ├── PredpisSeznam volitelný — všechny předpisy +│ │ └── Predpis[] +│ │ ├── ID_LP_Predpis UUID předpisu — povinný +│ │ ├── KodPredepisujiciho odkaz do PredepisujiciSeznam — povinný +│ │ ├── DatumVystaveni datum vystavení +│ │ ├── Mnozstvi int, 1–9999 +│ │ ├── Navod max 80 znaků (dávkování) +│ │ ├── Opakovani int — volitelný +│ │ ├── HVLPReg volitelný (registrovaný HVLP) +│ │ ├── HVLPNereg volitelný (neregistrovaný HVLP) +│ │ ├── IPLP volitelný (individuálně připravovaný LP) +│ │ ├── INN volitelný (generický název) +│ │ └── ModryPruh boolean — volitelný +│ │ +│ ├── VydejSeznam volitelný — výdeje z lékáren +│ │ └── Vydej[] +│ │ ├── ID_LP_Vydej UUID výdeje +│ │ ├── ID_LP_Predpis UUID předpisu — volitelný (odkaz na předpis) +│ │ ├── KodVydavajiciho odkaz do VydavajiciSeznam — povinný +│ │ ├── DatumVydeje datum výdeje +│ │ ├── Mnozstvi decimal, 0.01–9999.99 +│ │ ├── Navod max 80 znaků +│ │ ├── Exspirace datum — volitelný +│ │ ├── Sarze max 50 znaků +│ │ ├── SerioveCislo max 20 znaků — volitelný +│ │ ├── Pozn max 1000 znaků — volitelný +│ │ ├── HVLPReg volitelný +│ │ ├── HVLPNereg volitelný +│ │ └── IPLP volitelný +│ │ +│ └── DuplicitaSeznam volitelný — detekované duplicity výdejů +│ └── Duplicita[] +│ └── ID_LP[] +│ ├── ID_LP_Vydej UUID — volitelný +│ └── ID_LP_Predpis UUID — volitelný +│ +└── Zprava + ├── ID_Zpravy echo zpět + ├── Verze + ├── Odeslano + └── ... +``` + +> **Poznámka k odkazům:** `KodPredepisujiciho` v předpisu odpovídá `Lekar.Kod` v `PredepisujiciSeznam`. +> Stejně tak `KodVydavajiciho` odpovídá `Lekarnik.Kod` v `VydavajiciSeznam`. +> Struktura je záměrně normalizovaná — lékaři a lékárny jsou uloženi jednou, předpisy a výdeje se na ně odkazují. + +Reálná velikost odpovědi: **~227 KB** (pacient s 60měsíční historií). + +--- + +## HTTP hlavičky + +```python +headers = { + "Content-Type": 'text/xml; charset="UTF-8"', + "SOAPAction": '"NacistLekovyZaznam"', # uvozovky jsou součástí hodnoty! + "User-Agent": "Medicus" +} +``` + +--- + +## Závislosti (Python) + +``` +requests +requests-pkcs12 +``` + +Instalace: +```bash +pip install requests requests-pkcs12 +``` + +--- + +## Jak dohledat správný endpoint (postup pro budoucí operace) + +Endpoint `/cuer/Lekar2` byl dohledán tímto postupem: + +1. Prohledání veškeré dokumentace SÚKL (2017–2025) fulltext hledáním výrazu `soap:address` +2. Klíčový dokument: `eRecept_lekovy_zaznam_1v3.docx` (2024-01-18): + > *"Pro webové služby, které používá lékař a klinický farmaceut je nová verze rozhraní 202401A (původní 201912A): `https://lekar-soap.erecept.sukl.cz/cuer/Lekar2`"* +3. Ověřeno živým voláním — HTTP 200, reálná data + +### Mapa endpointů IS eRecept (produkce) + +| Endpoint | Určen pro | Operace | +|---|---|---| +| `https://lekar-soap.erecept.sukl.cz/cuer/Lekar` | lékař | CUER operace (předpis, zrušení…) | +| `https://lekar-soap.erecept.sukl.cz/cuer/Lekar2` | lékař | **NacistLekovyZaznam**, OverDuplicity, ZjistitPoznamkyHvlp | +| `https://lekar-soap.erecept.sukl.cz/rlpo/Lekar` | lékař | RLPO operace | +| `https://lekarnik-soap.erecept.sukl.cz/cuer/Lekarnik` | lékárník | CUER operace (výdej…) | +| `https://lekarnik-soap.erecept.sukl.cz/cuer/Lekarnik2` | lékárník | nové CUER operace lékárníka | +| `https://cuer-soap.erecept.sukl.cz/` | lékárna, ZP | doplatky, limity pojištěnce | + +--- + +## Ztotožnění pacienta a chybové kódy + +Zdroj: živé volání `NacistCiselnikChyb` na `https://lekar-soap.erecept.sukl.cz/cuer/Lekar` — ověřeno 5. 4. 2026. + +### Jak funguje ztotožnění pacienta (Registr obyvatel) + +Server každý dotaz porovná s **Registrem obyvatel (ROB)**. Lze použít dvě sady údajů: + +| Sada | Prvky | Poznámka | +|---|---|---| +| **A — jméno** | Prijmeni + Jmena + DatumNarozeni | základní, stačí pokud je pacient jednoznačný | +| **B — doklad** | DruhDokladu + CisloDokladu | jednoznačné vždy, řeší jmenovce | + +Obě sady lze kombinovat. Pokud jsou uvedeny obě, musí být konzistentní (jinak C017). + +### Hodnoty DruhDokladu + +| Hodnota | Doklad | +|---|---| +| `ID` | občanský průkaz | +| `P` | cestovní pas | + +`CisloDokladu` — pouze číslice, max 9 znaků. + +### Chybové kódy — ztotožnění pacienta (skupina C) + +| Kód | Popis | Co udělat | +|---|---|---| +| **C010** | Jméno + příjmení + datum narození nenalezeno v ROB | Zkontrolovat překlep, záměnu jména a příjmení | +| **C011** | Druh a číslo dokladu nenalezeno v ROB | Zkontrolovat číslo a platnost dokladu | +| **C012** | Adresa neodpovídá — více jmenovců se stejným jménem a datem | Doplnit `DruhDokladu` + `CisloDokladu` | +| **C014** | Není uvedeno ani jméno/datum, ani číslo dokladu | Doplnit alespoň jednu sadu | +| **C015** | Více jmenovců v ROB, nelze dohledat adresu | Doplnit adresu **nebo** číslo dokladu | +| **C016** | Pacient mladší 33 dní | Předpis uložen, ale nebude v lékovém záznamu | +| **C017** | Jméno/datum neodpovídá osobě nalezené dle čísla dokladu | Opravit jméno nebo ho neuvádět | +| **C018** | Nelze dohledat, chybí adresa | Doplnit adresu nebo číslo dokladu | +| **C019** | Datum narození v budoucnosti | Opravit datum | +| **C020** | Chybí jméno, příjmení nebo datum narození | Doplnit kompletní sadu A | +| **C022** | Pacient dle ROB již zemřel | — | + +### Chybové kódy — upozornění (uloženo, ale bez záznamu) + +| Kód | Popis | +|---|---| +| **C023** | Předpis uložen, ale kvůli chybě ztotožnění nebude v lékovém záznamu | +| **C024** | Registr LP prohledán, pacient nenalezen v ROB (možný cizinec) | +| **C025** | Výdej uložen, ale kvůli chybě ztotožnění nebude v lékovém záznamu | + +### Chybové kódy — doklad totožnosti + +| Kód | Popis | +|---|---| +| **L076** | Neznámý druh dokladu — povoleno pouze `ID` (občanský průkaz) nebo `P` (cestovní pas) | + +### Chybové kódy — systémové + +| Kód | Popis | +|---|---| +| **I005** | Registr obyvatel nedostupný (mimo kontrolu SÚKL) — zkusit znovu | +| **I007** | Chyba dotazu na ROB — vstupní data nemají správný formát | + +### Proč Medicus žádá o občanský průkaz + +Typický scénář: lékař pošle dotaz pouze se jménem + datem narození. Pokud existuje více jmenovců v ROB, server vrátí **C015**. Medicus tento kód rozpozná a zobrazí dialog *"zadejte číslo občanského průkazu"*. Lékař zadá číslo, Medicus pošle dotaz znovu s `DruhDokladu=ID` + `CisloDokladu=...` → server vrátí jednoznačný výsledek. + +### Skript s občankou + +`NacistLekovyZaznam_FUNKCNI_OBCANKA.py` — varianta s `DruhDokladu` + `CisloDokladu` v dotazu. + +--- + +## Soubory skriptů + +| Skript | Popis | +|---|---| +| `NacistLekovyZaznam_FUNKCNI.py` | základní dotaz — jméno + datum narození | +| `NacistLekovyZaznam_FUNKCNI_OBCANKA.py` | dotaz s číslem občanského průkazu | +| `NacistCiselnikChyb.py` | stáhne kompletní číselník chybových kódů ze serveru | + +--- + +## Zdroje dokumentace SÚKL + +| Soubor | Datum | Obsah | +|---|---|---| +| `eRecept_lekovy_zaznam_1v1.docx` | 2020-05-28 | původní popis lékového záznamu | +| `eRecept_lekovy_zaznam_1v3.docx` | 2024-01-18 | endpointy Lekar2/Lekarnik2, verze 202401A | +| `CUERLekarService.wsdl` | 2025-04-24 | nejnovější definice rozhraní, seznam operací | +| `Cuer2Schema.xsd` | 2025-04-24 | kompletní XSD schéma dotazu i odpovědi, verze 202501A | +| `CuerSchema.xsd` | 2025-04-24 | sdílené typy (Zprava, Pristupujici, adresy…) | diff --git a/LékovýZáznamWithClaude/NacistLekovyZaznam_FUNKCNI.py b/LékovýZáznamWithClaude/NacistLekovyZaznam_FUNKCNI.py new file mode 100644 index 0000000..9564961 --- /dev/null +++ b/LékovýZáznamWithClaude/NacistLekovyZaznam_FUNKCNI.py @@ -0,0 +1,77 @@ +import uuid +from datetime import datetime, timezone +from requests import Session +from requests_pkcs12 import Pkcs12Adapter + +# --- Konfigurace --- +PFX_FILE = r"C:\Users\vlado\PycharmProjects\Recepty\AMBSUKL214235369G_31DEC2024.pfx" +PFX_PASSWORD = "Vlado7309208104++" + +# HTTP Basic Auth - UUID lékaře (jednoznačný v ČR) + osobní heslo +API_USER = "e08c89c6-2b1a-4eba-8ed9-4e3e63618379" +API_PASS = "Buzalka@Vladimir2025" + +UZIVATEL = "E08C89C6-2B1A-4EBA-8ED9-4E3E63618379" +PRACOVISTE = "00214235367" + +ENDPOINTS = [ + "https://lekar-soap.erecept.sukl.cz/cuer/Lekar2", +] + +# --- Pacient --- +PRIJMENI = "Buzalka" +JMENA = "Vladimír" +DATUM_NAROZENI = "1973-09-20" + +POCET_ZNAKU_ATC = 7 +POCET_MESICU = 60 + + +def nacist_lekovy_zaznam(): + sess = Session() + sess.mount("https://", Pkcs12Adapter( + pkcs12_filename=PFX_FILE, + pkcs12_password=PFX_PASSWORD + )) + sess.auth = (API_USER, API_PASS) + + id_zpravy = str(uuid.uuid4()) + odeslano = datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%S+00:00") + + soap_body = ( + '' + '' + '' + f'' + f'' + f'{UZIVATEL}{PRACOVISTE}' + f'{POCET_ZNAKU_ATC}' + f'{POCET_MESICU}' + f'{PRIJMENI}{JMENA}' + f'{DATUM_NAROZENI}' + f'' + f'{id_zpravy}202501A' + f'{odeslano}MEDICUS_____' + f'' + '' + '' + ) + + headers = { + "Content-Type": 'text/xml; charset="UTF-8"', + "SOAPAction": '"NacistLekovyZaznam"', + "User-Agent": "Medicus" + } + + for url in ENDPOINTS: + print(f"\n--- POST: {url} ---") + try: + resp = sess.post(url, data=soap_body.encode("utf-8"), headers=headers, timeout=15) + print(f"HTTP {resp.status_code} | {len(resp.content)} bytů") + print(resp.text) + except Exception as e: + print(f"CHYBA: {e}") + + +if __name__ == "__main__": + nacist_lekovy_zaznam() diff --git a/LékovýZáznamWithClaude/NacistLekovyZaznam_FUNKCNI_OBCANKA.py b/LékovýZáznamWithClaude/NacistLekovyZaznam_FUNKCNI_OBCANKA.py new file mode 100644 index 0000000..7bdd829 --- /dev/null +++ b/LékovýZáznamWithClaude/NacistLekovyZaznam_FUNKCNI_OBCANKA.py @@ -0,0 +1,93 @@ +import uuid +from datetime import datetime, timezone +from requests import Session +from requests_pkcs12 import Pkcs12Adapter + +# --- Konfigurace --- +PFX_FILE = r"C:\Users\vlado\PycharmProjects\Recepty\AMBSUKL214235369G_31DEC2024.pfx" +PFX_PASSWORD = "Vlado7309208104++" +API_USER = "e08c89c6-2b1a-4eba-8ed9-4e3e63618379" +API_PASS = "Buzalka@Vladimir2025" + +UZIVATEL = "E08C89C6-2B1A-4EBA-8ED9-4E3E63618379" +PRACOVISTE = "00214235367" + +ENDPOINT = "https://lekar-soap.erecept.sukl.cz/cuer/Lekar2" +NAMESPACE = "http://www.sukl.cz/erp/201912" + +# --- Pacient --- +PRIJMENI = "Buzalka" +JMENA = "Vladimír" +DATUM_NAROZENI = "1973-09-20" + +# --- Doklad totožnosti --- +# DruhDokladu: "ID" = občanský průkaz, "P" = cestovní pas +# CisloDokladu: číslo dokladu, max 9 znaků (jen číslice) +DRUH_DOKLADU = "ID" +CISLO_DOKLADU = "" # <-- sem vyplnit číslo občanského průkazu pacienta + +POCET_ZNAKU_ATC = 7 # pouze 5 nebo 7 +POCET_MESICU = 60 # max 99, volitelné + + +def nacist_lekovy_zaznam_s_obcankou(): + if not CISLO_DOKLADU: + print("CHYBA: Není vyplněno CISLO_DOKLADU!") + return + + sess = Session() + sess.mount("https://", Pkcs12Adapter(pkcs12_filename=PFX_FILE, pkcs12_password=PFX_PASSWORD)) + sess.auth = (API_USER, API_PASS) + + id_zpravy = str(uuid.uuid4()) + odeslano = datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%S+00:00") + + soap_body = ( + '' + '' + '' + f'' + f'' + f'' + f'{UZIVATEL}' + f'{PRACOVISTE}' + f'' + f'{POCET_ZNAKU_ATC}' + f'{POCET_MESICU}' + f'' + f'' + f'{PRIJMENI}{JMENA}' + f'{DATUM_NAROZENI}' + f'{DRUH_DOKLADU}' + f'{CISLO_DOKLADU}' + f'' + f'' + f'' + f'' + f'{id_zpravy}' + f'202501A' + f'{odeslano}' + f'MEDICUS_____' + f'' + f'' + '' + '' + ) + + headers = { + "Content-Type": 'text/xml; charset="UTF-8"', + "SOAPAction": '"NacistLekovyZaznam"', + "User-Agent": "Medicus" + } + + print(f"Pacient: {PRIJMENI} {JMENA}, nar. {DATUM_NAROZENI}") + print(f"Doklad: {DRUH_DOKLADU} {CISLO_DOKLADU}") + print(f"Volám: {ENDPOINT}\n") + + resp = sess.post(ENDPOINT, data=soap_body.encode("utf-8"), headers=headers, timeout=15) + print(f"HTTP {resp.status_code} | {len(resp.content)} bytů\n") + print(resp.text) + + +if __name__ == "__main__": + nacist_lekovy_zaznam_s_obcankou() diff --git a/NačteníPředpisuWithClaude/MedicusDebug/eR_SuklMesage_bf002578-4e0d-48f9-86b4-ea3e21f280ec.mime b/NačteníPředpisuWithClaude/MedicusDebug/eR_SuklMesage_bf002578-4e0d-48f9-86b4-ea3e21f280ec.mime new file mode 100644 index 0000000..de1b07a --- /dev/null +++ b/NačteníPředpisuWithClaude/MedicusDebug/eR_SuklMesage_bf002578-4e0d-48f9-86b4-ea3e21f280ec.mime @@ -0,0 +1,13 @@ +User-Agent: Medicus +Host: lekar-soap.erecept.sukl.cz +SOAPAction: "NacistPredpis" +Content-Type: text/xml; charset="UTF-8" +Authorization: Basic ZTA4Yzg5YzYtMmIxYS00ZWJhLThlZDktNGUzZTYzNjE4Mzc5OkJ1emFsa2FAVmxhZGltaXIyMDI1 +Content-Length: 643 + + + + +E08C89C6-2B1A-4EBA-8ED9-4E3E6361837900214235367PPIBVF93285Ebf002578-4e0d-48f9-86b4-ea3e21f280ec202501A2026-04-05T15:24:10+02:00MEDICUS_____ + + diff --git a/NačteníPředpisuWithClaude/NacistPredpis_DOKUMENTACE.md b/NačteníPředpisuWithClaude/NacistPredpis_DOKUMENTACE.md new file mode 100644 index 0000000..67a4190 --- /dev/null +++ b/NačteníPředpisuWithClaude/NacistPredpis_DOKUMENTACE.md @@ -0,0 +1,283 @@ +# NacistPredpis — Funkční SOAP klient pro IS eRecept SÚKL + +## Status +**OVĚŘENO FUNKČNÍ** — 6. dubna 2026 +Odpověď serveru: `HTTP 200`, velikost: ~3.7 KB +Schéma ověřeno proti: `schema1.xsd` verze `202501A` (dokumentace SÚKL 2025-04-24) +Debug ověřen z: `MedicusDebug/eR_SuklMesage_bf002578-*.mime` + +--- + +## Co tato operace dělá + +`NacistPredpis` je SOAP operace IS eRecept (SÚKL), která vrátí **kompletní detail jednoho konkrétního receptu** podle jeho ID. + +Vrací vše: pacienta (jméno, adresa, rodné číslo, ZP), lékaře, ordinaci, předepsaný lék (ATC, dávkování, úhrada), stav receptu, výdej z lékárny. + +Typické použití: lékař si zobrazí detail receptu, který sám vystavil, nebo ověří zda byl vydán. + +--- + +## Klíčové informace + +### Endpoint (produkce) +``` +https://lekar-soap.erecept.sukl.cz/cuer/Lekar +``` +> Tato operace je na **starším** endpointu `/cuer/Lekar` — **bez** číslice 2. +> Operace `NacistLekovyZaznam` je naopak na `/cuer/Lekar2`. + +### Endpoint (testovací prostředí) +``` +https://lekar-soap.test-erecept.sukl.cz/cuer/Lekar +``` + +### SOAPAction +``` +"NacistPredpis" +``` + +### XML namespace +``` +http://www.sukl.cz/erp/201704 +``` +> Starší namespace z roku 2017 — tato operace existuje od počátku IS eRecept. +> Na rozdíl od `NacistLekovyZaznam` (namespace `201912`) zde zůstává `201704`. + +--- + +## Porovnání s NacistLekovyZaznam + +| | NacistPredpis | NacistLekovyZaznam | +|---|---|---| +| **Namespace** | `201704` | `201912` | +| **Endpoint** | `/cuer/Lekar` | `/cuer/Lekar2` | +| **SOAPAction** | `NacistPredpis` | `NacistLekovyZaznam` | +| **Identifikace** | ID receptu (alfanumerický kód) | jméno + datum narození pacienta | +| **Výsledek** | detail jednoho receptu | celý lékový záznam pacienta (roky) | +| **Velikost odpovědi** | ~3.7 KB | ~227 KB | + +--- + +## Autentizace (dvojitá — stejná jako u všech operací) + +### 1. Klientský certifikát (TLS mutual auth) +- Soubor: `AMBSUKL214235369G_31DEC2024.pfx` +- Formát: PKCS#12 (`.pfx`) +- Knihovna: `requests-pkcs12` → `Pkcs12Adapter` + +### 2. HTTP Basic Auth +- Uživatel: UUID lékaře +- Heslo: osobní heslo lékaře do portálu eRecept + +--- + +## Struktura SOAP dotazu + +```xml + + + + + + + + E08C89C6-2B1A-4EBA-8ED9-4E3E63618379 + 00214235367 + + + PPIBVF93285E + + + + + + + bf002578-4e0d-48f9-86b4-ea3e21f280ec + 202501A + 2026-04-06T07:24:04+00:00 + MEDICUS_____ + + + + + +``` + +### Parametry dotazu (ověřeno proti schema1.xsd verze 202501A) + +| Element | Povinný | Omezení | Poznámka | +|---|---|---|---| +| `Uzivatel` | ✅ ano | UUID formát | UUID lékaře přidělené SÚKL | +| `Pracoviste` | ✅ ano | — | IČP pracoviště lékaře | +| `ID_Dokladu` | ❌ volitelný* | 12–25 znaků | alfanumerický kód receptu | +| `ID_Podani` | ❌ volitelný* | UUID formát (36 znaků) | alternativní identifikátor podání | +| `ID_Zpravy` | ✅ ano | UUID formát | nové UUID pro každý dotaz | +| `Verze` | ✅ ano | — | aktuálně `202501A` | +| `Odeslano` | ✅ ano | ISO 8601 | čas odeslání s časovou zónou | +| `SW_Klienta` | ✅ ano | přesně 12 znaků | doplnit mezerami | + +> *Uvést právě jedno z: `ID_Dokladu` nebo `ID_Podani` — viz chybový kód L001. + +### Formát ID receptu (`ID_Dokladu`) + +Alfanumerický kód délky 12–25 znaků, např. `PPIBVF93285E`. +- Nesmí obsahovat písmena O (zaměnitelné s nulou), I (zaměnitelné s jedničkou), Y, Z +- Nesmí obsahovat malá písmena ani diakritiku +- Lékař jej vidí na průvodce receptu / v Medicusu + +--- + +## Struktura odpovědi (ověřeno proti schema1.xsd verze 202501A) + +``` +NacteniPredpisuOdpoved +├── Doklad +│ ├── ID_Dokladu alfanumerický kód receptu +│ ├── DatumVystaveni datum +│ ├── PlatnostDo datum +│ ├── VypisDo datum — volitelný (prodloužená platnost výpisem) +│ ├── Akutni boolean — volitelný +│ ├── Rodina boolean — volitelný +│ ├── Preshranicni boolean — volitelný +│ ├── Opakovani int — volitelný (opakovací předpis) +│ │ +│ ├── Pacient +│ │ ├── Totoznost +│ │ │ ├── Jmeno (Prijmeni, Jmena) +│ │ │ ├── DatumNarozeni +│ │ │ ├── Adresa (ulice, číslo, obec, PSC, okres...) +│ │ │ └── ROB způsob ztotožnění: ECD / JPDN / JPDNA +│ │ ├── CP číslo pojištěnce (rodné číslo) +│ │ ├── ZP Kod + Nazev zdravotní pojišťovny +│ │ ├── Telefon volitelný +│ │ ├── Notifikace SMS / Email — volitelný +│ │ └── Pohlavi M / Z — volitelný +│ │ +│ ├── Predepisujici +│ │ ├── Lekar Kod (UUID) + Jmeno +│ │ ├── ICZ 8 číslic +│ │ ├── ICP 8 číslic +│ │ ├── PZS Kod + Nazev + IC + Telefon + Adresa +│ │ ├── Telefon +│ │ ├── Email volitelný +│ │ └── Odbornost Kod + Nazev +│ │ +│ ├── Doporucujici volitelný — doporučující lékař +│ │ ├── Jmeno +│ │ ├── PZS +│ │ └── Odbornost +│ │ +│ ├── Revize volitelný — schválení revizním lékařem ZP +│ │ +│ ├── PLP[] předepsané léčivé přípravky (1 nebo více) +│ │ ├── Mnozstvi int, 1–9999 +│ │ ├── Navod dávkování, max 80 znaků (např. "1-1-0") +│ │ ├── Uhrada ZAKLADNI / ZVYSENA / NEHRAZENY +│ │ ├── HVLPReg volitelný — registrovaný lék +│ │ │ ├── Kod SÚKL kód (7 číslic, např. "0087076") +│ │ │ ├── ATC ATC kód (např. "R05CB15") +│ │ │ ├── Nazev např. "ERDOMED" +│ │ │ ├── Forma léková forma (např. "CPS DUR") +│ │ │ ├── Sila síla (např. "300MG") +│ │ │ ├── CestaPodani např. "POR" +│ │ │ └── Baleni počet kusů v balení +│ │ ├── HVLPNereg volitelný — neregistrovaný HVLP +│ │ ├── IPLP volitelný — individuálně připravovaný LP +│ │ ├── INN volitelný — generický název +│ │ ├── Prekroceni boolean — překročení limitu +│ │ ├── ID_LP_Zdroj int — ID zdroje LP +│ │ └── ID_LP UUID položky předpisu +│ │ +│ ├── Pozn poznámka, max 1000 znaků — volitelný +│ ├── Stav stav receptu (viz níže) +│ │ +│ ├── Vydej[] volitelný — výdeje z lékáren (zkrácená forma) +│ │ ├── ID_Dokladu ID výdeje +│ │ ├── ID_Dokladu_ERP ID receptu (zpětný odkaz) +│ │ ├── DatumVydeje datum +│ │ ├── NazevPZS název lékárny +│ │ ├── JmenoVydavajiciho jméno lékárníka (může být "skryto") +│ │ ├── VLP[] vydané léčivé přípravky +│ │ │ ├── Mnozstvi +│ │ │ ├── Nazev plný název léku (např. "ERDOMED 300MG CPS DUR 20") +│ │ │ ├── Kod SÚKL kód +│ │ │ ├── Navod +│ │ │ └── IdLpErp UUID zpětný odkaz na PLP +│ │ ├── Zmena datetime +│ │ └── Zalozeni datetime +│ │ +│ ├── Zmena datetime — poslední změna receptu +│ ├── Zalozeni datetime — vytvoření receptu +│ ├── DruhPojisteni VEREJNE / OSTATNI — volitelný +│ ├── ModryPruh boolean — volitelný (omamné látky) +│ ├── Papirovy boolean — volitelný +│ └── ZapocitatelnyDoplatekZbyvaDoLimitu decimal — zbývající limit doplatků pacienta +│ +└── Zprava + ├── ID_Zpravy nové UUID od serveru + ├── Verze + ├── Odeslano + ├── ID_Podani echo ID podání + └── Prijato datetime — čas přijetí na serveru +``` + +### Hodnoty stavu receptu (`Stav`) + +| Hodnota | Popis | +|---|---| +| `KE_SCHVALENI` | čeká na schválení revizním lékařem ZP | +| `ZAMITNUTY` | zamítnut | +| `PREDEPSANY` | vystaven, čeká na výdej | +| `PRIPRAVOVANY` | lékárna si ho načetla, připravuje výdej | +| `CASTECNE_VYDANY` | vydán částečně (opakovací předpis) | +| `PLNE_VYDANY` | kompletně vydán ✅ | +| `NEDOKONCENY_VYDEJ` | výdej nedokončen | +| `UZAVRENY` | uzavřen, nelze měnit | + +### Hodnoty způsobu ztotožnění (`ROB`) + +| Hodnota | Popis | +|---|---| +| `ECD` | elektronicky čitelný doklad (občanský průkaz/pas) | +| `JPDN` | jednoznačný dle jména, příjmení, data a adresy | +| `JPDNA` | jednoznačný dle jména, příjmení a data (bez adresy) | + +--- + +## HTTP hlavičky + +```python +headers = { + "Content-Type": 'text/xml; charset="UTF-8"', + "SOAPAction": '"NacistPredpis"', # uvozovky jsou součástí hodnoty! + "User-Agent": "Medicus" +} +``` + +--- + +## Závislosti (Python) + +``` +requests +requests-pkcs12 +``` + +--- + +## Soubor skriptu + +`NacistPredpis_FUNKCNI.py` — funkční implementace, ověřeno 6. 4. 2026. + +--- + +## Zdroje dokumentace SÚKL + +| Soubor | Datum | Obsah | +|---|---|---| +| `MedicusDebug/eR_PostData.xml` | 2026-04-05 | reálný dotaz z Medicusu | +| `MedicusDebug/eR_SuklMesage_*.mime` | 2026-04-05 | HTTP hlavičky + tělo dotazu | +| `MedicusDebug/eR_SuklMesage_*_Resp.xml` | 2026-04-05 | reálná odpověď serveru | +| `CUERLekar.wsdl` | 2025-04-24 | definice operace NacistPredpis | +| `schema1.xsd` | 2025-04-24 | kompletní XSD schéma dotazu i odpovědi | diff --git a/NačteníPředpisuWithClaude/NacistPredpis_FUNKCNI.py b/NačteníPředpisuWithClaude/NacistPredpis_FUNKCNI.py new file mode 100644 index 0000000..7e7f00c --- /dev/null +++ b/NačteníPředpisuWithClaude/NacistPredpis_FUNKCNI.py @@ -0,0 +1,71 @@ +import uuid +from datetime import datetime, timezone +from requests import Session +from requests_pkcs12 import Pkcs12Adapter + +# --- Konfigurace --- +PFX_FILE = r"C:\Users\vlado\PycharmProjects\Recepty\AMBSUKL214235369G_31DEC2024.pfx" +PFX_PASSWORD = "Vlado7309208104++" +API_USER = "e08c89c6-2b1a-4eba-8ed9-4e3e63618379" +API_PASS = "Buzalka@Vladimir2025" + +UZIVATEL = "E08C89C6-2B1A-4EBA-8ED9-4E3E63618379" +PRACOVISTE = "00214235367" + +ENDPOINT = "https://lekar-soap.erecept.sukl.cz/cuer/Lekar" +NAMESPACE = "http://www.sukl.cz/erp/201704" + +# --- ID receptu --- +# Alfanumerický kód receptu, např. PPIBVF93285E +ID_DOKLADU = "PPIBVF93285E" + + +def nacist_predpis(): + sess = Session() + sess.mount("https://", Pkcs12Adapter(pkcs12_filename=PFX_FILE, pkcs12_password=PFX_PASSWORD)) + sess.auth = (API_USER, API_PASS) + + id_zpravy = str(uuid.uuid4()) + odeslano = datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%S+00:00") + + soap_body = ( + '' + '' + '' + f'' + f'' + f'' + f'{UZIVATEL}' + f'{PRACOVISTE}' + f'' + f'' + f'{ID_DOKLADU}' + f'' + f'' + f'' + f'{id_zpravy}' + f'202501A' + f'{odeslano}' + f'MEDICUS_____' + f'' + f'' + '' + '' + ) + + headers = { + "Content-Type": 'text/xml; charset="UTF-8"', + "SOAPAction": '"NacistPredpis"', + "User-Agent": "Medicus" + } + + print(f"Recept: {ID_DOKLADU}") + print(f"Volám: {ENDPOINT}\n") + + resp = sess.post(ENDPOINT, data=soap_body.encode("utf-8"), headers=headers, timeout=15) + print(f"HTTP {resp.status_code} | {len(resp.content)} bytů\n") + print(resp.text) + + +if __name__ == "__main__": + nacist_predpis()