The ATL COM module generalInvoiceRequest is capable of
generating electronic and printed invoices & reminders
generating electronic and printed invoices & reminders
API browser of generalInvoiceRequest450 COM module
IGeneralInvoiceRequest::AddServiceEx method | |||||||||
---|---|---|---|---|---|---|---|---|---|
Adds a service from an extended tariff to the list of services.
The term "extended" means a tariff whose services are splitted into a medical and technical part (like the Tarmed) as opposed to a simple tariff with a (code, name, tax point) structure. Note, that the IServiceExInput interface is needed to define further data even if a corresponding validator is not used. Auto-expansion: under the condition that the corresponding validator is installed and eIgnoreValidate=enNo then bstrText, dUnitMT, dUnitTT, dUnitInternalScalingFactorMT, dUnitInternalScalingFactorTT, dAmountMT, dAmountTT and dAmount are auto-expanded to the correct values by the validator if and only if these values are set empty or 0, respectively. If the return status is VARIANT_FALSE then the service record is not added! |
|||||||||
Restful webservice calling syntax | |||||||||
[POST] | /baseURL/IGeneralInvoiceRequest/AddServiceEx | ||||||||
[JSON input data] | pIGeneralInvoiceRequest: pIServiceExInput: bstrTariffType: bstrCode: bstrReferenceCode: dQuantity: lSessionNumber: dDateBegin: dDateEnd: eSide: bstrText: dUnitMT: dUnitFactorMT: dUnitInternalScalingFactorMT: dAmountMT: dUnitTT: dUnitFactorTT: dUnitInternalScalingFactorTT: dAmountTT: dAmount: dVatRate: eIsObligatory: bstrRemark: lGroupSize: bstrSectionCode: eIgnoreValidate: lServiceAttributes: |
longValue, //interface address longValue, "utf8StringValue", "utf8StringValue", "utf8StringValue", doubleValue, longValue, variantDateValue | "stringISODateValue", variantDateValue | "stringISODateValue", longValue, "utf8StringValue", doubleValue, doubleValue, doubleValue, doubleValue, doubleValue, doubleValue, doubleValue, doubleValue, doubleValue, doubleValue, longValue, "utf8StringValue", longValue, "utf8StringValue", longValue, longValue |
|||||||
[JSON result data] | plID: pbStatus: |
longValue, booleanValue |
|||||||
[HTTP result status] | 200 | Return status 200 signals a successful method call | |||||||
204 | Return status 204 (noContent) signals that the end of an iteration is reached | ||||||||
>= 400 | Return status >= 400 signals an unsuccessful function call. The returned JSON{errorCode: code, errorText:"text"} supplies the error message the same as GetAbortInfo() would do. | ||||||||
C/C++ calling syntax | |||||||||
HRESULT AddServiceEx( | IServiceExInput
BSTR BSTR BSTR double long DATE DATE SideType BSTR double double double double double double double double double double ObligationType BSTR long BSTR YesNoType long long VARIANT_BOOL |
*pIServiceExInput,
bstrTariffType, bstrCode, bstrReferenceCode, dQuantity, lSessionNumber, dDateBegin, dDateEnd, eSide, bstrText, dUnitMT, dUnitFactorMT, dUnitInternalScalingFactorMT, dAmountMT, dUnitTT, dUnitFactorTT, dUnitInternalScalingFactorTT, dAmountTT, dAmount, dVatRate, eIsObligatory, bstrRemark, lGroupSize, bstrSectionCode, eIgnoreValidate, lServiceAttributes, *plID, *pbStatus); |
|||||||
[C/C++ return value] | S_OK | This value is returned if the function call was successful. | |||||||
S_FALSE | This value is returned if the end of an iteration is reached | ||||||||
E_name | This value is returned if the function call was unsuccessful and an error exception was generated. Note that if you are using SmartPointers an exception is thrown under these conditions. | ||||||||
Calling argument description | |||||||||
[in] IServiceExInput | *pIServiceExInput | The instance of the IServiceExInput interface used for the given tariff.
Please note, that even if a validator is not used for the given tariff, IServiceExInput still holds data that is required to produce a standard compliant XML infoset like the billingRole and medicalRole. Therefore, the instance can not be NULL! |
|||||||
[in] BSTR | bstrTariffType | The official tariff type as defined by Forum Datenaustausch | |||||||
[in] BSTR | bstrCode | The service code. | |||||||
[in] BSTR | bstrReferenceCode | The reference code if one must be supplied.
Supply an empty string if there is no reference code to set. |
|||||||
[in] double | dQuantity | The floating point quantity.
Note that quantity changes the sign if a storno request is produced. |
|||||||
[in] long | lSessionNumber | The session number - use a session value of 1 if no session concept is established for the used tariff | |||||||
[in] DATE | dDateBegin | The date of the service's prescription | |||||||
[in] DATE | dDateEnd | The date of the last prescription of the service if and only if the service was applied over a period of time.
dDateEnd is ignored if the condition (dDateEnd > dDateBegin+1) is not true! Therefore dDateEnd=0 is supplied for the vast majority of services. |
|||||||
[in] SideType | eSide | The body side dependency of the service | |||||||
[in] BSTR | bstrText | The name of the service as defined by the used tariff | |||||||
[in] double | dUnitMT | Tax points of the medical part (TP_MT) of the service. | |||||||
[in] double | dUnitFactorMT | Tax point value of the medical part (TPV_MT) of the service. | |||||||
[in] double | dUnitInternalScalingFactorMT | The internal scaling factor of the medical part of the service.
This is a modulation factor to represent percent services and is mostly 1 - set the factor 0 to auto-expand it depending on the service. |
|||||||
[in] double | dAmountMT | The amount in CHF for the medical part of the service.
Note that amount changes the sign if a storno request is produced due to the sign change of dQuantity. |
|||||||
[in] double | dUnitTT | Tax points of the technical part (TP_TT) of the service. | |||||||
[in] double | dUnitFactorTT | Tax point value of the technical part (TPV_TT) of the service. | |||||||
[in] double | dUnitInternalScalingFactorTT | The internal scaling factor of the technical part of the service.
This is a modulation factor to represent percent services and is mostly 1 - set the factor 0 to auto-expand it depending on the service. |
|||||||
[in] double | dAmountTT | The amount in CHF for the technical part of the service.
Note that amount changes the sign if a storno request is produced due to the sign change of dQuantity. |
|||||||
[in] double | dAmount | The amount in CHF for the service as sum over dAmountMT + dAmountTT
Note that amount changes the sign if a storno request is produced due to the sign change of dQuantity. |
|||||||
[in] double | dVatRate | The VAT rate in percent or as real number that should be applied to this service. | |||||||
[in] ObligationType | eIsObligatory | Obligatory enumerator indicating whether the given service record has a obligation status regarding the given law (UVG,KVG,...).
If the enumerator is set to enObligationAutomatic then the status is set internally using some ad hoc rules. |
|||||||
[in] BSTR | bstrRemark | An optional remark for the given service
Patch for populating service attributes If service attribute keywords drugOffLabelUse | withoutDoctorsOrder } Thus, this is an alternative method of setting lServiceAttributes - cf. below. |
|||||||
[in] long | lGroupSize | lGroupSize defines the participating group size of a service whose quantity is calculated by the "Divisor Method". A value of < 2 means that there is no group size dependency! | |||||||
[in] BSTR | bstrSectionCode | An optional BfS section code where the service was applied as defined by Swiss Federal Statistical Office - this code is only given for eRoleType=enRoleHospital! | |||||||
[in] YesNoType | eIgnoreValidate | Flag indicating whether the validation must be ignored that is whether the corresponding validator must be called or not.
This flag might be useful in the following situation: the user wants to add the service even if the validation failed, perhaps he has a special agreement with the insurance or patient. |
|||||||
[in] long | lServiceAttributes | lServiceAttributes is a 32-bit integer where each bit position defines a special information.
Defined bit positions as of February 2021
|
|||||||
[out] long | *plID | This is the returned internal ID of the service record. | |||||||
[out,retval] VARIANT_BOOL | *pbStatus | Return status of the method. If pbStatus is VARIANT_FALSE then an error occurred and GetAbortInfo should be called to retrieve the error string. | |||||||