API browser of generalFormRequest450 COM module

/images/arrow_right.png IGeneralFormRequest::GetNextStructRole method space
Retrieves the first structure of all semantically well defined structures defined by the currently loaded PDF file.

Note, that basically the index of the named struct and the occupation status (defined or not) is returned. Based on the returned status, a structure is set or overridden by the appropriate method e.g. AddDiagnosis, using the given bstrStructName struct index.

Furthermore, the method returns a possible non-empty constraint, that supplies further specific information about the requested data. The constraint must be seen either as >xsd:appinfo< element holding information for the main software or as >xsd:annotation< formulated in the natural language of the form requesting specific information. Example of ist usage are:

  • eLawType=enUVG in an insuranceS1Address, requesting an address of an UVG insurance
  • name='HbA1c' in a numericS1Struct, requesting a 'HbA1c' lab result
  • 'letzte Thoraxaufnahme als JPG senden' in a documentS1Struct, requesting a specific document as attachment

VARIANT_FALSE is returned if the end of the structure list is reached.

/images/arrow_right.png Restful webservice calling syntax
[POST] /baseURL/IGeneralFormRequest/GetNextStructRole
[JSON input data] pIGeneralFormRequest: longValue,    //interface address
[JSON result data] peStructRoleType:
[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.
/images/arrow_right.png C/C++ calling syntax
HRESULT GetNextStructRole( StructRoleType
[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.
/images/arrow_right.png Calling argument description
[out] StructRoleType *peStructRoleType The role type/typification of the structure defined by the StructRoleType enumerator.
[out] BSTR *pbstrStructName The PDF internal variable name/placeholder onto which the structure was mapped.
[out] long *plIndex The '0'-based index into the array of structures of the given structure role type.
[out] long *plMaxOccurs The maximal cardinality of this given structure role type
[out] YesNoType *peIsDefined Boolean that designates if the structure is already preset and defined (enYes) or not (enNo)
[out] BSTR *pbstrConstraint bstrConstraint is -if defined at all- a constraint onto the value space, a constraint of the time axis (appinfo machine instruction) or a natural language based instruction (annotation). The constraint of a structure is formatted by using/defining variables of the corresponding method and setting/assigning a constraint value. These token=value sets are whitespace separated, case-insensitive and the notation is exactly as in the API documentation.

Furthermore, there are situations where a constraint of the value space is defined by the applicable law. Therefore, the aforementioned token=value set can optionally be augmented by a eLawType set, e.g. eLawType=enUVG for setting the law to UVG (cf the enumeration space of eLawType for the possible set of values!).

For example the constraint on the right distant sphere of an eyeglass prescription can be defined in terms of the numericResult structure as:

eResultCodeType =enResultCodeLoinc && bstrCode=28826-6

Please note, that the constraint is not enforced by the COM module to allow other data as well - in that sense, it is more a hint than a constraint. However, it does not make any sense e.g. to add a HbA1c lab result for the aforementioned distant sphere!

[out,retval] VARIANT_BOOL *pbStatus Return status of the method. If pbStatus is VARIANT_FALSE the end of data is reached