001/* 002 * #%L 003 * HAPI FHIR - Core Library 004 * %% 005 * Copyright (C) 2014 - 2024 Smile CDR, Inc. 006 * %% 007 * Licensed under the Apache License, Version 2.0 (the "License"); 008 * you may not use this file except in compliance with the License. 009 * You may obtain a copy of the License at 010 * 011 * http://www.apache.org/licenses/LICENSE-2.0 012 * 013 * Unless required by applicable law or agreed to in writing, software 014 * distributed under the License is distributed on an "AS IS" BASIS, 015 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 016 * See the License for the specific language governing permissions and 017 * limitations under the License. 018 * #L% 019 */ 020package ca.uhn.fhir.rest.gclient; 021 022import org.hl7.fhir.instance.model.api.IIdType; 023 024public interface IOperation extends IBaseOn<IOperationUnnamed> { 025 026 /** 027 * This operation operates on a specific version of a resource 028 */ 029 IOperationUnnamed onInstanceVersion(IIdType theId); 030 031 /** 032 * This operation is called <b><a href="https://www.hl7.org/fhir/messaging.html">$process-message</a></b> as defined by the FHIR 033 * specification.<br><br> 034 * Usage :<br> 035 * <code> 036 * <pre> 037 * Bundle response = client 038 * .operation() 039 * .processMessage() 040 * .synchronous(Bundle.class) 041 * .setResponseUrlParam("http://myserver/fhir") 042 * .setMessageBundle(msgBundle) 043 * .execute(); 044 * 045 * //if you want to send an async message 046 * 047 * OperationOutcome response = client 048 * .operation() 049 * .processMessage() 050 * .asynchronous(OperationOutcome.class) 051 * .setResponseUrlParam("http://myserver/fhir") 052 * .setMessageBundle(msgBundle) 053 * .execute(); 054 * 055 * </pre> 056 * </code> 057 * 058 * @return An interface that defines the operation related to sending 059 * Messages to a Messaging Server 060 * @see <a href="https://www.hl7.org/fhir/messaging.html">2.4 Messaging 061 * using FHIR Resources</a> 062 */ 063 IOperationProcessMsg processMessage(); 064}