Jämförda versioner

Nyckel

  • Dessa rader lades till.
  • Denna rad togs bort.
  • Formateringen ändrades.

Bakgrund

NTjP drar nytta av filen HSA-units som hämtas från HSA. Denna nyttjas bland annat för det som kallas Trädklättring. Idag finns det en rutin för att uppdatera denna fil manuellt när det beställs. Detta skapar ibland incidenter vi saknar uppdaterad HSA information i plattformen.
Vi behöver skapa en automatiserad funktion för denna inläsning.

Arkitekturella krav

  • Funktionen ska 1 gång per dygn hämta filen.
  • Finnas både i QA och Prod
  • Det ska finnas en logg på när datum och tid när filen lästes in samt vilket datum filen är skapad (inte skapad i NTJP utan hos HSA)
  • Filen behöver valideras innan inläsning. T.ex jämföra deltat mellan tidigare fil och ny fil.
  • Om något går fel vid inläsning så behöver det gå information till servicedesk
  • Ha en funktion för att läsa in en tidigare HSAfil om något skulle gå fel med den nya.

Implementation

Skriptets funktionalitet

...

Bild som beskriver processen:

Image RemovedImage Added



XSD-shema för validering hsa-filen.



Kodblock
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns:tns="urn:riv:hsa:HsaWsResponder:3"
            xmlns:xmime="http://www.w3.org/2005/05/xmlmime"
            targetNamespace="urn:riv:hsa:HsaWsResponder:3" elementFormDefault="qualified">
    <xsd:element name="FileGetHsaUnitsResponse" type="tns:ListGetHsaUnitsResponseType"/>

    <xsd:complexType name="ListGetHsaUnitsResponseType">
        <xsd:sequence>
            <xsd:element name="startDate" type="xsd:dateTime"/>
            <xsd:element name="endDate" type="xsd:dateTime"/>
            <xsd:element name="hsaUnits">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="hsaUnit" type="tns:ListHsaUnitType" minOccurs="1" maxOccurs="unbounded" />
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="ListHsaUnitType">
        <xsd:sequence>
            <xsd:element name="hsaIdentity" type="xsd:string" minOccurs="0" />
            <xsd:element name="DN" type="xsd:string" />
            <xsd:element name="orgNo" type="xsd:string" minOccurs="0"/>
            <xsd:element name="name" type="xsd:string" minOccurs="0"/>
            <xsd:element name="publicName" type="xsd:string" minOccurs="0" />
            <xsd:element name="isHsaHealthCareProvider" type="xsd:boolean" minOccurs="0" />
            <xsd:element name="isHsaHealthCareUnit" type="xsd:boolean" minOccurs="0" />
            <xsd:element name="hsaResponsibleHealthCareProvider" type="xsd:string" minOccurs="0"/>
            <xsd:element name="healthCareProviderIsArchived" type="xsd:boolean" minOccurs="0" />
            <xsd:element name="healthCareUnitIsArchived" type="xsd:boolean" minOccurs="0" />
            <xsd:element name="unitIsArchived" type="xsd:boolean" minOccurs="0" />
            <xsd:element name="hsaHealthCareUnitMembers" minOccurs="0" >
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="hsaHealthCareUnitMember" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="startDate" type="xsd:dateTime" minOccurs="0" />
            <xsd:element name="endDate" type="xsd:dateTime" minOccurs="0" />
        </xsd:sequence>
    </xsd:complexType>

</xsd:schema>