API browser of generalInvoiceResponse500 COM module


/images/arrow_right.png IGeneralInvoiceResponse::GetNextService method space
Retrieves the next "simple/normal" service from the list of services, that was modified by the insurance.
 
Please note that several conditions must be true, such that modified services are returned:
  • only tiers mode = enTiersPayant and tiers_payant@eAllowTPModification = enYes
  • only the quantity is changed including setting zero, and only these changed services are returned and documented
  • if services are changed than a balance block holding the paid amount besides the original amounts are returned.

 
VARIANT_FALSE is returned if the end of the service list is reached.
space
/images/arrow_right.png Restful webservice calling syntax
[POST] /baseURL/IGeneralInvoiceResponse/GetNextService
[JSON input data] pIGeneralInvoiceResponse: longValue,    //interface address
[JSON result data] pbstrTariffType:
pbstrCode:
pbstrReferenceCode:
pdQuantityOriginal:
pdQuantityModified:
plSessionNumber:
plGroupSize:
pdDateBegin:
pdDateEnd:
pbstrProviderGLN:
pbstrResponsibleGLN:
peSide:
pbstrServiceName:
pdUnit:
pdUnitFactor:
pdExternalFactor:
pdAmountOriginal:
pdAmountModified:
pdVatRate:
pbstrRemark:
pbstrSectionCode:
plServiceAttributes:
plID:
pbStatus:
"utf8StringValue",
"utf8StringValue",
"utf8StringValue",
doubleValue,
doubleValue,
longValue,
longValue,
"stringISODateValue",
"stringISODateValue",
"utf8StringValue",
"utf8StringValue",
longValue,
"utf8StringValue",
doubleValue,
doubleValue,
doubleValue,
doubleValue,
doubleValue,
doubleValue,
"utf8StringValue",
"utf8StringValue",
longValue,
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.
space
/images/arrow_right.png C/C++ calling syntax
HRESULT GetNextService( BSTR
BSTR
BSTR
double
double
long
long
DATE
DATE
BSTR
BSTR
SideType
BSTR
double
double
double
double
double
double
BSTR
BSTR
long
long
VARIANT_BOOL
*pbstrTariffType,
*pbstrCode,
*pbstrReferenceCode,
*pdQuantityOriginal,
*pdQuantityModified,
*plSessionNumber,
*plGroupSize,
*pdDateBegin,
*pdDateEnd,
*pbstrProviderGLN,
*pbstrResponsibleGLN,
*peSide,
*pbstrServiceName,
*pdUnit,
*pdUnitFactor,
*pdExternalFactor,
*pdAmountOriginal,
*pdAmountModified,
*pdVatRate,
*pbstrRemark,
*pbstrSectionCode,
*plServiceAttributes,
*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.
space
/images/arrow_right.png Calling argument description
[out] BSTR *pbstrTariffType The official tariff type as defined by Forum Datenaustausch
[out] BSTR *pbstrCode The service code.
[out] BSTR *pbstrReferenceCode The reference code.
 
The reference code might be empty since not all services request one.
[out] double *pdQuantityOriginal The original floating point quantity.
[out] double *pdQuantityModified The modified floating point quantity.
Note, that the modification can span the whole value range as double, spanning negative, zero and positive fractional values!
[out] long *plSessionNumber lSessionNumber defines either a specific patient contact with an unique number over the entire treatment period or
a day-based session number. The session number divides the day into a series of individual treatment units (sessions), whereby by default
each day starts with the number 1 and is incremented by 1 for each new treatment unit.
&nbp;
Some tariffs do not include a session concept, others such as TARMED/TARDOC rely heavily on this paradigm.
For tariffs without a session concept, simply enter 1 as the session number for all services on one day.
[out] long *plGroupSize lGroupSize defines the size of a participating group of a service whose quantity is calculated by the "Divisor Method".
It should be noted that the group size is declarative only with a default value equals to 1 implicitly meaning that it is NO service defined via the "Divisor Method" as the group size for such a service is always larger than 1.
 
Please note that in the "Divisor Method" the quantity is coded by definition as follows: quantity = effective_quantity / group_size.
[out] DATE *pdDateBegin The date of the service's prescription
[out] DATE *pdDateEnd The date of the last prescription of the service if and only if the service was applied over a period of time.
 
dDateEnd=0.0 is returned for all cases where no end date of the prescription was defined.
[out] BSTR *pbstrProviderGLN The GLN of the service provider as supplied by Stiftung Refdata
 
Note if bstrProviderGLN is undefined and bstrResponsibleGLN is defined then bstrResponsibleGLN is copied into the bstrProviderGLN variable. If both variables are undefined the pseudo GLN "2099999999998" is set.
[out] BSTR *pbstrResponsibleGLN The GLN of the responsible for the service as supplied by Stiftung Refdata
 
Note if bstrResponsibleGLN is undefined and bstrProviderGLN is defined then bstrProviderGLN is copied into the bstrResponsibleGLN variable. If both variables are undefined the pseudo EAN "2099999999998" is set.
[out] SideType *peSide The body side dependency of the service
[out] BSTR *pbstrServiceName The name of the service as defined by the used tariff
[out] double *pdUnit Tax points (TP) of the service.
[out] double *pdUnitFactor Tax point value (TPV) of the service.
[out] double *pdExternalFactor The used external scaling factor
[out] double *pdAmountOriginal The original amount in CHF of the service supplied in 2-digit precision.
[out] double *pdAmountModified The modified amount in CHF of the service supplied in 2-digit precision using dQuantityModified instead of dQuantityOriginal
[out] double *pdVatRate The VAT rate as real number that should be applied to this service e.g. 0.081 for a VAT rate of 8.1%.
[out] BSTR *pbstrRemark An optional remark for the given service
[out] BSTR *pbstrSectionCode The optional bstrSectionCode
[out] long *plServiceAttributes lServiceAttributes is a 32-bit integer where each bit position defines a special information.
 
Defined bit positions as of November 2024
Bit Meaning
Bit 1:
(0x000001)
Code207: no drug substitution due to medical reasons. Applies to drug services only!
 
If this bit ("Code207") is set, the service provider declares that the drug prescribed must not be substituted due to medical reasons.
 
In a printed invoice/reminder, bit 1 is written as SA='Code207' in the comment line, case insensitive.
If more than one service attribute is set, all defined mnemonics are combined as SA='BitX+BitY+BitZ'.
Bit 2:
(0x000002)
franchiseFree: Franchise exemption of given service
 
If this bit ("franchiseFree") is set, the service provider declares that the service was provided as franchise free.
 
In a printed invoice/reminder, bit 2 is written as SA='franchiseFree' in the comment line, case insensitive.
If more than one service attribute is set, all defined mnemonics are combined as SA='BitX+BitY+BitZ'.
Bit 3:
(0x000004)
drugOffLabelUse: off label use of a drug in accordance with Art. 71a-c KVV
 
If this bit ("drugOffLabelUse") is set, the service provider declares that the off-label prescription of the drug has been approved by the healthcare insurance by means of a prior accepted credit request.
 
In a printed invoice/reminder, bit 3 is written as SA='drugOffLabelUse' in the comment line, case insensitive.
If more than one service attribute is set, all defined mnemonics are combined as SA='BitX+BitY+BitZ'.
Bit 4:
(0x000008)
withoutDoctorsOrder: Services without a doctor's order (Art. 59 KVV, Abs. 3bis)
 
If this bit ("withoutDoctorsOrder") is set, the service provider declares that the service was provided without a doctor's order.
 
In a printed invoice/reminder, bit 4 is written as SA='withoutDoctorsOrder' in the comment line, case insensitive.
If more than one service attribute is set, all defined mnemonics are combined as SA='BitX+BitY+BitZ'.
Bit 5:
(0x000010)
noObligation: the applied service is not an obligatory insurance benefit under the given Law (or Contract)
 
If this bit ("noObligation") is set, the service provider declares that the service provided is not an obligatory insurance benefit under the given law (or contract).
 
In a printed invoice/reminder, bit 5 is written as SA='noObligation' in the comment line, case insensitive.
If more than one service attribute is set, all defined mnemonics are combined as SA='BitX+BitY+BitZ'.
[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 the end of data is reached
space